WCF REST调用中的默认枚举值问题

时间:2012-04-19 12:48:59

标签: c# wcf rest

我在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?

1 个答案:

答案 0 :(得分:-2)

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

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

试试这段代码就行了。不确定为什么人们在没有任何解释的情况下给予反馈。这对我来说真的很有趣。

我发布了答案,因为我遇到了完全相同的问题,这个解决方案对我来说真的很有用。

感觉不是很好的答案的Thanx家伙:)。