0

これは一種の 2 つの部分からなる質問です。1つ目は、これを行うのに最善の方法をとっているのか、2つ目は、私がぶつかった障害だと思います。次のコードは、文字列プロパティでは機能しますが、int では機能しません。KVP から int 値を文字列として取得しますが、プロパティの文字列に int を設定できません。解析できる構文が見つかりません。

[WebInvoke(UriTemplate = "", Method = "POST")]
public Response Post(JsonValue items)
{
    List<Provider> providers = new List<Provider>();
    foreach (var item in items)
    {
        var json = item.Value;
        var provider = new Provider();

        foreach (var property in typeof(Provider).GetProperties())
        {
            if (json.ContainsKey(property.Name))
                property.SetValue(provider, json[property.Name].ToString(), null);
        }

        providers.Add(provider);
    }

    return new Response { success = true, data = providers };
}
4

1 に答える 1

1

switchオーバーを実行し、property.PropertyTypeそれに応じて文字列を解析できます。

ただし、独自のJSONデシリアライザーを作成することはお勧めしません。DataContractAPIを使用します:チュートリアル

于 2011-07-26T09:33:01.910 に答える