我目前正在使用.NET Core 2.0,以便可以在多个平台上运行我的应用程序。
我需要做的一件事是将传入的字符串反序列化为对象。例如
var resultingObject = JsonConvert.DeserializeObject<MyDataContract>(request);
在完整的.NET中,它将运行并返回我的对象。但是,在.NET Core 2.0中,出现以下异常
Could not load file or assembly 'System.Security.Permissions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
at Newtonsoft.Json.Serialization.JsonTypeReflector.get_DynamicCodeGeneration()
at Newtonsoft.Json.Serialization.JsonTypeReflector.get_ReflectionDelegateFactory()
at Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator(Type createdType)
at Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract contract)
at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType)
at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType)
at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
经过一番阅读后,我在StackOverflow上发现了这一点,这表明.NET Core https://stackoverflow.com/a/38385774/1211743不允许这种操作
有人有见识吗?
这是由于对.NET Core的工作原理缺乏了解。我打开了csproj,并添加了对所需文件“ System.Security.Permissions”的引用,然后重新加载了该项目。至此,nuget解决了。Json.NET现在可以按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句