【发布时间】:2019-05-16 22:48:06
【问题描述】:
我已将许多类库从 .NET Framework 4.5 移植到 .NET Standard 2.0。从 .NET Framework 4.8 控制台应用程序中使用这些库可以正常工作。但是,从 .NET Core 2.2 控制台应用程序引用库会导致以下异常:
SerializationException: Type 'System.Collections.Hashtable+SyncHashtable' in Assembly 'System.Runtime.Extensions, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable
带有堆栈跟踪
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.CheckSerializable(Type t)
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
at System.Runtime.Serialization.Formatters.Binary.BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
at System.Runtime.Serialization.Formatters.Binary.BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(BinaryParser serParser, Boolean fCheck)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, Boolean check)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
我对失败的框架的最内部调用代码是这样的:
public static object Deserialize(BinaryReader binaryReader)
{
BinaryReader binaryReader = new BinaryReader(inStream);
BinaryFormatter binaryFormatter = new BinaryFormatter();
return binaryFormatter.Deserialize(binaryReader.BaseStream);
}
有什么想法吗?
【问题讨论】:
-
恐怕你得给我们看一些代码,我们真的需要minimal reproducible example
标签: .net .net-core .net-standard-2.0