Xamarin с использованием DataContractJsonSerializer для пустого приложения Android

Я пытаюсь использовать DataContractJsonSerializer, но не могу найти для него ссылку/пространство имен. Я создал свое приложение на .NET Framework 4.5.

Когда я нажимаю добавить ссылку, я получаю только версию 2.0.5.0 для System.ServiceModel.




Ответы (2)


Если вы хотите, чтобы DataContractJsonSerializer работал с Android, вам нужно создать проект PCL, а затем он будет доступен в пространстве имен System.Runtime.Serialization.Json. Для этого потребуется бизнес-лицензия Xamarin или выше.

Лучшим вариантом было бы использовать Json.NET (намного быстрее, чем DataContractJsonSerializer, если вы используете его более одного раза) или ServiceStack.Text (намного быстрее, чем Json.NET). XLabs предлагает абстракцию сериализаторов, совместимых с мобильными устройствами (Nuget, найдите XLabs.Serialization) и имеет плагины для Json.NET, ServiceStack.Text (v3), ProtoBuf и, конечно же, DataContractSerializer (сериализатор .NET XML). DataContractJsonSerializer отсутствует в пакете, поскольку для него требуется бизнес-лицензия, и на самом деле он мало что предлагает по сравнению с Json.NET или ServiceStack.

person SKall    schedule 10.04.2015

DataContractJsonSerializer не будет работать с Xamarin. Я использую пакет Newtonsoft.Json nuget для работы с сериализацией json и до сих пор не обнаружил с ним никаких проблем. Это очень просто:

строка str = Newtonsoft.Json.JsonConvert.SerializeObject(myObject);

person Grisha    schedule 09.04.2015