Правильный запуск метода SerializeObject?

#c# #asp.net #json

#c# #asp.net #json

Вопрос:

Я добавил json dll в свой проект и пытаюсь сериализовать объект:

  ProductType itemToEdit = new ProductType("Name");
 string jsonString = JsonConvert.SerializeObject(itemToEdit);
  

Появляется ошибка:

В Newtonsoft.Json произошло исключение типа ‘System.missingmethod Exception’.DLL, но не был обработан в пользовательском коде

Дополнительная информация: Метод не найден: ‘Boolean System.Runtime.Сериализация.DataContractAttribute.get_IsReference()’.

Но проект строится правильно.

Комментарии:

1. на какую платформу ориентирован ваш проект? Убедитесь, что это 3.5 или 4

2. это происходит со всеми объектами или только с ProductType?

3. Да, проект выполняется правильно, потому что это Runtime исключение.

Ответ №1:

У меня была та же проблема. Установка .NET Framework 3.5 с пакетом обновления 1 решил проблему. Атрибут DataContractAttribute.Свойство IsReference поддерживается только в .NET framework 4, 3.5 SP1 и 3.0 SP2

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.isreference.aspx.

Ответ №2:

Не уверен, поможет ли это, но у меня была похожая проблема с Newtonsoft.Json при его использовании с приложением Windows Phone 7.

Я получал ‘System.missingmethod Exception’, возникшее в Newtonsoft.Json.DLL при выполнении JsonConvert.SerializeObject.

Я установил с помощью NuGet, и ссылка, которую он добавил, была на Newtonsoft.Json.Silverlight.

Я изменил это на Newtonsoft.Json.WindowsPhone и это решило проблему.