2012-04-19 3 views
1

私は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に設定されている理由を教えてください。

+0

例として挙げた列挙型には、 'UserDTO'で指定している値がありません。 –

+0

おそらく0のUserEmailTypeプロパティ値から初期化しています。なぜなら、あなたの人生を楽にし、初期値として0を作るだけではないのです。 – NSGaga

+0

@DBM:そうです。あなたは、私が指定した値がUserDTOに存在しないときに、自動的に0に(そして-1ではない)それを自動的に設定する理由をいくつか明示してください。また、あなたの回答を回答としてマークすることができるように、回答を作成してください。 –

答えて

-2

値を2の累乗に設定すると効果があります。

[Flags] 
enum EmailType 
{ 
None = 0, 
NoEmail = 1, 
All = 2 
} 

このコードを試しても問題ありません。なぜ人々が何の説明もせずにフィードバックを与えているのかどうかは分かりません。それは本当に面白いです。

私はまったく同じ問題を抱えていたので、このソリューションは本当に私のために働いたので、私は答えを掲載しました。

これは良い回答ではないと思う上品な男:)。

+0

enum DaysOfWeek {Tractor、False、FileNotFound} –

+0

このコードで伝えたいこと<< Enum DaysOfWeek {Tractor、False、FileNotFound} >> – Shailesh