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) 而不是我在私有属性实例化中指定的。看起来 .NET REST API 框架将其设置为 0,即使我已在 UserDTO 类中将其设置为不同的值。你能告诉我为什么 UserEmailType 设置为 0 而不是 -1 吗?

4

1 回答 1

-2

将值设置为 2 的幂,它将起作用。

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

试试这个代码,它会正常工作。不知道为什么人们在没有任何解释的情况下给出 -ve 反馈。这对我来说真的很有趣。

我发布了答案,因为我遇到了完全相同的问题,而且这个解决方案确实对我有用。

感谢那些觉得这不是一个好的答案的人:)。

于 2012-04-19T13:01:12.517 回答