调用 JsonConvert.DeserializeObject<T> 时缺少 System.Security.Permissions在 .NET Core 2.0 中

编程入门 行业动态 更新时间:2024-10-19 16:41:27
本文介绍了调用 JsonConvert.DeserializeObject<T> 时缺少 System.Security.Permissions在 .NET Core 2.0 中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我目前正在考虑使用 .NET Core 2.0,以便可以在多个平台上运行我的应用程序.

I am currently looking at using .NET Core 2.0 so that I can run my app on multiple platforms.

我需要做的一件事是获取一个传入的字符串并将其反序列化为一个对象.例如

One thing I need to do is take an incoming string and deseralise it into an object. e.g.

var resultingObject = JsonConvert.DeserializeObject<MyDataContract>(request);

在完整的 .NET 中,这将运行并返回我的对象​​.但是在 .NET Core 2.0 中出现以下异常

In full .NET, this would run and return me my object. However in .NET Core 2.0 I get the following exception

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 中不允许这种操作 stackoverflow/a/38385774/1211743

After some reading around I found this on StackOverflow which suggests that this kind of operation is not permitted in .NET Core stackoverflow/a/38385774/1211743

有人有什么见解吗?

推荐答案

这是由于对 .NET Core 的工作原理缺乏了解.我打开了 csproj 并添加了对所需文件System.Security.Permissions"的引用并重新加载了项目.至此,nuget 解决了.Json.NET 现在按预期工作.

This was due to a lack of understanding of how .NET Core works. I opened up the csproj and added a reference to the required file 'System.Security.Permissions' and reloaded the project. At this point, nuget resolved it. Json.NET now works as expected.

更多推荐

调用 JsonConvert.DeserializeObject&lt;T&gt; 时缺少 System.Security.Permission

本文发布于:2023-11-17 07:10:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1609258.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:lt   gt   amp   JsonConvert   DeserializeObject

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!