0

次のようなクラスがあります。

public class Position 
{
    public int X { get; set; }
    public int Y { get; set; }
}

これと同様のデータ契約を想定すると、次のようになります。

[DataContract]
public class MyModel
{
    [DataMember(name="position")]
    public Position Position { get; set; }
}

この位置の値を、次のような値を使用てクライアントとの間で送信したいと思います。

JSON:{ "position": "1,2" }

XML:<position>1,2</position>

私はこれをやろうとしていないことを付け加えておきます:

JSON:{ "position": { "data": "1,2" } }

XML:<position><data>1,2</data></position>

可能であれば、これをシリアル化パイプライン全体に注入したくありません。Webコントローラーで動作させましたが、APIコントローラーは少し注意が必要です。これを行うための最良の方法は何ですか?

ありがとう

アップデート

この場合、位置フィールドをそのまま使用することにしました(例{ "position": { "X": 1, "Y": 2 } })が、解決策が見つかった場合は、これを開いたままにして更新します。

4

1 に答える 1

0

ビューモデルを使用できます:

[DataContract]
public class PositionViewModel
{
    [DataMember(name = "position")]
    public string Position { get; set; }
}

Position必要に応じて、コントローラー アクションでドメイン モデルとビュー モデルをマッピングします。

于 2012-10-18T20:52:01.760 に答える