JSON .Net Windows Mobile Ошибка при сериализации

Я запускаю этот фрагмент кода:

 string serialized = JsonConvert.SerializeObject(somethingToSend);

И он выдает это исключение:

MissingMethodException: не удалось загрузить тип «System.Runtime.Serialization.StreamingContext» из сборки «mscorlib, версия = 3.5.0.0, культура = нейтральная, PublicKeyToken = 969DB8053D3322AC».

Вот моя конфигурация:

  • Visual Studio 2008 (со всеми последними пакетами обновлений и т. д.)
  • Проект Smart Device, ориентированный на Windows Mobile 6 .Net 3.5
  • Json DotNet версии 4.5, выпуск 7 (ссылка на DLL из папки WindowsPhone в ZIP-архиве)

Ответ на вопрос "Есть ли библиотека для чтения JSON в C# в Windows Mobile?" подразумевает, что она должна работать.

Я запускаю его в режиме отладки с подключенным реальным устройством (поэтому без эмулятора), где я ранее установил CAB-файл отсюда без ошибок:

C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\NETCFv35.wce.armv4.cab

Приложение работает нормально, пока я не нажму кнопку, которая запускает строку выше, так что кто-нибудь знает, что мне не хватает?

Этот поток "Json.Compact.dll для Windows CE 5.0?" предполагает, что мне понадобится Установлен Windows SDK, который у меня есть. Учитывая, что он работает на самом устройстве, я думаю, что это все равно не исправит.

Другое предложение - собрать из исходного кода, но, как и автор вопроса, я не могу загрузить файл проекта в VS 2008 для этого. Я мог бы создать новый проект, включить исходные файлы и попытаться скомпилировать его, но прежде чем я это сделаю, я подумал, что спрошу здесь, стоит ли это того или, возможно, что-то еще отсутствует при установке на устройство? Или, может быть, я должен использовать альтернативную сборку?


person kmp    schedule 02.07.2012    source источник


Ответы (1)


Так что мне нужно было RTFM! В файле readme сказано:

Microsoft прекратила поддержку Compact Framework в Visual Studio 2010. Для сборки Compact Framework 3.5 загрузите Json.NET 3.5.

Поэтому я взял самую последнюю версию 3.5: выпуск Json.NET 3.5. 8, обновил свою ссылку, чтобы она указывала на сборку Newtonsoft.Json.Compact.dll, запустил ее, и все заработало нормально.

person kmp    schedule 03.07.2012
comment
Кроме того, похоже, что версия 3.5.8 найдена в codeplex по адресу json.codeplex.com/releases/view/50552. отличается от 3.5.8, найденного в nuget по адресу nuget. org/packages/Newtonsoft.Json/3.5.8 - person DaveWilliamson; 18.08.2017
comment
Ссылка не работает. - person The One; 02.02.2018