使用ServiceStack反序列化字符串

时间:2015-02-19 11:23:41

标签: json servicestack

我正在尝试使用ServiceStack将一个简单的json字符串反序列化为Dto对象:

public class TestDto
{
    public int MyProp { get; set; }
}

var json = JsonSerializer.DeserializeFromString<TestDto>("{\"MyProp\":6}");

我得到例外:

[System.TypeInitializationException] = 
{"The type initializer for 'ServiceStack.Text.Json.JsonReader`1' threw an exception."}

// With the inner exception:
"Object reference not set to an instance of an object."

// And the stack trace:
at ServiceStack.Text.Common.JsReader`1.GetCoreParseFn[T]()
at ServiceStack.Text.Common.JsReader`1.GetParseFn[T]()
at ServiceStack.Text.Json.JsonReader`1..cctor()

我在Windows 8.1上使用Xamarin在Visual Studio中进行开发。 ServiceStack代码位于可移植库中。目前,我正在直接从单元测试中触发可移植库代码。

以下是ServiceStack的Nuget包信息:

<package id="ServiceStack.Text" version="4.0.36" 
targetFramework="portable-net45+win+MonoAndroid10+xamarinios10+MonoTouch10" />

知道我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:3)

使用PCL clients and Json Serializer is in the HelloMobile project的文档,特别是您需要安装 ServiceStack.Client NuGet包,其中包含支持您运行的平台所需的平台特定扩展:< / p>

PM> Install-Package ServiceStack.Client

对于iOS,您还应explicitly initialize the PCL library使用:

IosPclExportClient.Configure();