Silverlight クライアントからの JSON 応答をデシリアライズしたいと考えています。
サーバーとクライアントの両方から参照されるポータブル クラス ライブラリに DTO があります。
public class MyDTOResponse
{
public IEnumerable<MyType> ResponseData {get; set; }
}
ServiceStack C# クライアントを使用すると (つまり、Silverlight からではなく)、すべて正常に動作します。クライアントで MyType がハイドレートされます。
ただし、Silverlight からは、ResponseData が null です。
単純型は Silverlight からも正常に動作します。たとえば、これは機能します:
public class MyDTOResponse
{
public IEnumerable<string> ResponseData {get; set; }
}
注: DTO に注釈はありません。
クライアントでは、私は以下を使用しています:
var serviceClient = new ServiceStack.ServiceClient.Web.JsonServiceClient(baseUri);
私の回避策は、単純な型だけを使用するように DTO を変更してから、クライアント上のビジネス オブジェクトを手動でハイドレートすることです。
これよりうまくやれるだろうか?