私はC#で簡単なWCFプロジェクトを持っています。私はDTO User.csを使用しています:WCF RESTコールのデフォルトの列挙値の問題
public UserDTO
{
private EmailType _emailType = EmailType.NotSpecified;
[DataMember]
public EmailType UserEmailType
{
get { return _emailType; }
set { _emailType = value; }
}
}
EmailType.csは、これらの値を持っている:
私はこの方法を持っているサービスプロジェクトで今すぐNone = -1,
NoEmail = 0,
All = 1
:
public RestResponse CreateNewUser(UserDTO user)
{
try
{
//my code to call BL to create a new user
}
}
しかし、私このメソッドを(RESTful URLを使用して)呼び出すと、CreateNewUser()メソッドが起動します。私はuser.UserEmailTypeがプライベートプロパティのインスタンスで指定したものではなく、NoEmail(0)に設定されていることに気付きました。 .NET REST APIフレームワークがUserDTOクラスの別の値に設定していても、それを0に設定しているようです。 UserEmailTypeが-1ではなく0に設定されている理由を教えてください。
例として挙げた列挙型には、 'UserDTO'で指定している値がありません。 –
おそらく0のUserEmailTypeプロパティ値から初期化しています。なぜなら、あなたの人生を楽にし、初期値として0を作るだけではないのです。 – NSGaga
@DBM:そうです。あなたは、私が指定した値がUserDTOに存在しないときに、自動的に0に(そして-1ではない)それを自動的に設定する理由をいくつか明示してください。また、あなたの回答を回答としてマークすることができるように、回答を作成してください。 –