【问题标题】:Xamarin Using DataContractJsonSerializer for Android Blank AppXamarin 为 Android 空白应用程序使用 DataContractJsonSerializer
【发布时间】:2015-04-09 13:00:42
【问题描述】:
我正在尝试使用 DataContractJsonSerializer,但我似乎无法获得它的引用/命名空间。
我在 .NET Framework 4.5 上创建了我的应用程序。
当我点击添加参考时,我只获得 System.ServiceModel 的 2.0.5.0 版本
【问题讨论】:
标签:
xamarin
serialization
xamarin.android
datacontractserializer
datacontractjsonserializer
【解决方案1】:
如果您想让 DataContractJsonSerializer 与 Android 一起使用,您需要创建一个 PCL 项目,然后它将在命名空间 System.Runtime.Serialization.Json 下可用。这需要 Xamarin 营业执照或更高版本才能工作。
更好的选择是使用 Json.NET(如果您多次使用它,它比 DataContractJsonSerializer 快得多)或 ServiceStack.Text (much faster than Json.NET)。 XLabs 提供了对移动兼容序列化器 (Nuget, search for XLabs.Serialization) 的抽象,并具有适用于 Json.NET、ServiceStack.Text (v3)、ProtoBuf 的插件,当然还有 DataContractSerializer (.NET XML 序列化器)。软件包中省略了 DataContractJsonSerializer,因为它需要商业许可,并且与 Json.NET 或 ServiceStack 相比并没有提供太多功能。
【解决方案2】:
DataContractJsonSerializer 不适用于 Xamarin。
我使用 Newtonsoft.Json nuget 包来处理 json 序列化,到目前为止还没有发现任何问题。
很简单:
字符串 str = Newtonsoft.Json.JsonConvert.SerializeObject(myObject);