1

C# で単純な WCF プロジェクトを作成しています。私は DTO User.cs を使用しています:

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) に設定されていることに気付きました。UserDTO クラスで別の値に設定したにもかかわらず、.NET REST API フレームワークが 0 に設定しているようです。UserEmailType が -1 ではなく 0 に設定されている理由を教えてください。

4

1 に答える 1

-2

値を 2 の累乗に設定すると、機能します。

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

このコードを試してみてください。うまくいきます。なぜ人々が何の説明もなしに -ve フィードバックをしているのかわからない. それは私にとって本当に面白いです。

まったく同じ問題があり、この解決策が本当にうまくいったので、回答を投稿しました。

それが良い答えではないと感じている人に感謝します:)。

于 2012-04-19T13:01:12.517 に答える