如何解决“ JsonSerializerSettings”无法访问字段“ DefaultContext”的问题

时间:2019-02-12 02:00:15

标签: c# json uwp json.net

自从我从GitHub提取项目并尝试运行我的应用程序以来,在尝试序列化任何内容时,当它引用Json.net时,问题就一直发生。最初是在版本11上出现错误时,然后我尝试降级到版本8并仍然存在。因此,我升级到了最新版本12.0.1,但问题仍然没有消失

代码不过是Newtonsoft.Json.JsonConvert.SerializeObject(data)

无论数据是哪种类型,它总是会抛出

FieldAccessException: Attempt by method 
'Newtonsoft.Json.JsonSerializerSettings..cctor()' to access field 
'Newtonsoft.Json.JsonSerializerSettings.DefaultContext' failed.

我什至尝试自行构造JsonSerializerSettings,但这种情况仍然存在。

2 个答案:

答案 0 :(得分:0)

answer对您有帮助吗?

  

基本上,为了解决此问题,您需要确保在“调试”下的项目设置中未选中“启用Visual Studio托管过程”。

答案 1 :(得分:0)

如果代码在部分信任下运行,则可能会发生此错误。以下链接可以在提供错误说明方面提供更多帮助:

https://docs.microsoft.com/en-us/dotnet/api/system.methodaccessexception?redirectedfrom=MSDN&view=netframework-4.7.2

以前,如果代码具有受限访问权限(例如私有方法,受保护方法或内部方法),则我会遇到此错误。根据MSDN:

  

在以下情况下会引发此异常:

     
      
  • 从普通编译代码无法访问的私有,受保护或内部方法可以部分访问   通过反射获得可信代码。

  •   
  • 从透明代码访问安全性至关重要的方法。

  •   
  • 类库中方法的访问级别已更改,并且未引用该库的一个或多个程序集
      重新编译。

  •