Как исправить «JsonSerializerSettings» не удается получить доступ к полю «DefaultContext» - PullRequest
0 голосов
/ 12 февраля 2019

Поскольку я извлекаю свой проект из 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 голосов
/ 12 февраля 2019

Эта ошибка может возникать, если код выполняется с частичным доверием.Следующая ссылка может помочь в предоставлении описания ошибки:

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

Ранее я сталкивался с этой ошибкой, если доступ к коду ограничен, например, закрытыми, защищенными или внутренними методами.Согласно MSDN:

Это исключение возникает в следующих ситуациях:

  • Частный, защищенный или внутренний метод, который не был бы доступен изДоступ к нормальному скомпилированному коду осуществляется из частично доверенного кода с использованием отражения.

  • Доступ к критическому методу безопасности осуществляется из прозрачного кода.

  • Доступизменился уровень метода в библиотеке классов, и одна или несколько сборок, которые ссылаются на библиотеку, не были
    перекомпилированы.

0 голосов
/ 12 февраля 2019

Поможет ли вам этот ответ ?

В принципе, чтобы обойти эту проблему, необходимо убедиться, что флажок "Включить процесс размещения Visual Studio" снят в вашем проекте.Настройки в Debug.

...