2017-05-10 3 views
0

すべてのキーと値のペアを受け入れ、データモデルの作成:は、私がこのようなポストコマンドが含まれているWeb APIコントローラーを持っている

[HttpPost] 
    public void Post([FromBody]UserProfile value) 
    { 
     ... 
    } 

これは私のUserProfileクラスが見えるものであるように:

public class UserProfile 
{ 
    public string UserId { get; set; } 

    public string Email { get; set; } 
} 

クライアントが次のような投稿要求を送信した場合、追加のフィールドを逆シリアル化することもできます。データモデルでこれらのフィールドを動的に作成する方法はありますか?

{ 
    "userId": "a123", 
    "email": "[email protected]", 
    "firstName": "John", 
    "lastName": "Doe", 
    "...": "..." 
} 

私は(最低でも)、ユーザIDと電子メールを受け入れることができるようにしたいが、ユーザーは私に多くのデータを送信する場合、私はNoSQLの中にそれを格納するために、同様のことを受け入れたいのですがデータベース。

おそらく私のオブジェクトをUserProfileからDictionaryに変更することができますが、ユーザーIDと電子メールを表示するためにぼんやりとしたドキュメントが必要です。

答えて

1

データモデルでこれらのフィールドを動的に作成する方法はありますか?

[HttpPost] 
public void Post([FromBody]IDictionary<string, string> pairs) 
{ 
    ... 
} 

あなたはUserIdEmail辞書から、そこにいる場合を取得することができます:私は考えることができる

一つの解決策は、このようなキーと値のペアの任意の数を収容する辞書を受け入れることですあなたがそれらを同様に処理することができるより多くの項目です。

もう1つのことは、オブジェクトが持つ可能性のあるすべてのプロパティを考えて、それらのほとんどをオプションにしてから、コントローラに値があるかどうかをチェックして処理することです。

関連する問題