0

次の署名を使用して、ASP.NETMVCWebAPIアプリケーションのメソッドから結果を返したいです。

public class Result
{
    public int ResultCode { get; set; }
    public MapFeatureViewModel Params { get; set; }
    public string Message { get; set; }
}

MapFeatureViewModelタイプシグネチャは

public class MapFeatureViewModel
{
    public long Id { get; set; }
    public string Uuid { get; set; }
    public string Feature { get; set; }
    public long MapId { get; set; }
}

これまではすべて正常に機能しています。しかし、他のすべてのメソッドで使用するために、ResultクラスのParamsのタイプを「object」または「dynamic」に変更しようとすると、次のエラーメッセージが表示されます。

「ローカル名「__type」で属性を書き込んだ後、属性「type」=「object」を書き込む必要があります。」

WebAPIに強く型付けされていないプロパティをシリアル化する方法はありますか?

4

2 に答える 2

0

考慮すべきいくつかの選択肢があります。Web API では、厳密に型指定された CLR オブジェクトをモデルとして使用でき、それらはクライアント用に XML または JSON に自動的にシリアル化されます。詳細については、こちらをご覧ください

ただし、JSON を C# 動的オブジェクトに逆シリアル化することはできます。それを行う方法、まあ、このトピックに関する良い投稿があります。詳細については、こちらをご覧ください

于 2012-06-13T13:17:43.510 に答える