有没有办法在不使用.NET核心1.0中的序列化的情况下将JSON对象转换为Custom对象。因为我正在使用.net framework 4.5构建的dll,并且在其中定义的模型具有[Serialize]
属性。所以当我尝试将JSON字符串转换为对象时,我面临以下错误:
无法加载文件或程序集'System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。该系统找不到指定的文件。
dll内部指的是其中的Serialization类。我用来转换为对象的代码片段
public void ConvertToObject(string jsonString)
{
return JsonConvert.DeserializeObject<CustomObject>(json);
//This line throws error
}
我认为问题只是因为[Serialize]
属性,但我们没有控制来修改提供的dll。而且我们只需要坚持使用.NET Core 1.0。我在Core 2.0及其工作中尝试过它。
在.Net Core项目中加载引用的dll有一个混乱(不确定它是否在Core 2.0中修复)。尝试为正在运行的最顶级项目添加对System.Runtime.Serialization dll的引用。例如。你有以下结构:
(a)Web应用程序(ASP.Net Core)==>(b).Net Core DLL ==>(c).Net 4.5 dll其中(c)是带有Serialize属性的dll
为(a)添加对System.Runtime.Serialization的引用注意:为(b)添加该引用也可能有所帮助,但是如果您有更深层次的解决方案结构并且有其他项目引用(b),它可能会再次中断,所以top项目是你的选择