Я пытаюсь использовать DataContractJsonSerializer, но не могу найти для него ссылку/пространство имен. Я создал свое приложение на .NET Framework 4.5.
Когда я нажимаю добавить ссылку, я получаю только версию 2.0.5.0 для System.ServiceModel.
Я пытаюсь использовать DataContractJsonSerializer, но не могу найти для него ссылку/пространство имен. Я создал свое приложение на .NET Framework 4.5.
Когда я нажимаю добавить ссылку, я получаю только версию 2.0.5.0 для System.ServiceModel.
Если вы хотите, чтобы 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.
DataContractJsonSerializer не будет работать с Xamarin. Я использую пакет Newtonsoft.Json nuget для работы с сериализацией json и до сих пор не обнаружил с ним никаких проблем. Это очень просто:
строка str = Newtonsoft.Json.JsonConvert.SerializeObject(myObject);