C# 导入ddl会编译,但在应用程序中调用时会生成System.TypeLoadException异常

C# 导入ddl会编译,但在应用程序中调用时会生成System.TypeLoadException异常,c#,exception,system,monodevelop,typeloadexception,C#,Exception,System,Monodevelop,Typeloadexception,我正在尝试导入一个使用System.Collections.Generic.List(Iserialization)的dll,但是每当调用该类时,我都会遇到以下异常,在过去4个小时的尝试后,我无法正常工作一个错误: Exception: System.TypeLoadException: Could not load type 'System.Collections.Generic.List`1[[SD_Library.PLItem, SD Library, Version=1.0.0.0, C

我正在尝试导入一个使用System.Collections.Generic.List(Iserialization)的dll,但是每当调用该类时,我都会遇到以下异常,在过去4个小时的尝试后,我无法正常工作一个错误:

Exception: System.TypeLoadException: Could not load type 'System.Collections.Generic.List`1[[SD_Library.PLItem, SD Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'.
  at (wrapper managed-to-native) System.Type:internal_from_name (string,bool,bool)
  at System.Type.GetType (System.String typeName, Boolean throwOnError) [0x00011] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System/Type.cs:471 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadTypeMetadata (System.IO.BinaryReader reader, Boolean isRuntimeObject, Boolean hasTypeInfo) [0x000bc] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:640 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectInstance (System.IO.BinaryReader reader, Boolean isRuntimeObject, Boolean hasTypeInfo, System.Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x0000a] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:269 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObject (BinaryElement element, System.IO.BinaryReader reader, System.Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x0008a] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:191 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObject (BinaryElement element, System.IO.BinaryReader reader, System.Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x00105] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:223 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadNextObject (BinaryElement element, System.IO.BinaryReader reader) [0x00020] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:130 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectGraph (BinaryElement elem, System.IO.BinaryReader reader, Boolean readHeaders, System.Object& result, System.Runtime.Remoting.Messaging.Header[]& headers) [0x00004] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/ObjectReader.cs:104 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00078] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryFormatter.cs:179 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000] in /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryFormatter.cs:136 
  at GameManager.OpenStream (System.String saveLocation) [0x0003c] in C:\Users\Chris\Documents\Repositories\PL2D\Assets\Scripts\GameManager.cs:568 
UnityEngine.Debug:LogError(Object)
GameManager:OpenStream(String) (at Assets/Scripts/GameManager.cs:572)
GameManager:LoadItemDatabase() (at Assets/Scripts/GameManager.cs:457)
GameManager:Start() (at Assets/Scripts/GameManager.cs:188)
GameManager:Awake() (at Assets/Scripts/GameManager.cs:440)
我正在使用MonoDevelop 4.0.1和Unity 4.3.3


有什么建议吗?问题类相当简单。它只有一堆浮点数、字符串、整数、一个字典和一个列表。它在保存对象时使用Iserialization,并与ISerializable接口。该列表是另一个类的列表,该类也是可序列化的。

尽管Visual Studio C#2010允许在程序集名称中使用空格,但Mono不喜欢这样。一旦我删除了名称中的空格,所有问题都解决了,现在可以正常工作。

异常情况需要异常解释。我肯定会首先从“SD库”程序集名称中删除空格。就是这样!修正!:D如果你用这个来创建一个答案,我会把它标记为正确的。非常感谢。我不想用一根10英尺长的杆子去碰它,这得让一大群单声道用户高兴才行。请随意编写您自己的答案,不要忘记在项目中提交bug。