我在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框架将其设置为0即使我已将它设置为UserDTO类中的一个不同的值。你能告诉我为什么UserEmailType设置为0而不是-1?
您作为示例给出的枚举不具有您在'UserDTO'中指定的值。 – 2012-04-19 12:53:57
它可能是从一个0 UserEmailType属性值初始化 - 为什么不只是让你的生活更轻松,并使你想要的0作为初始值。 – NSGaga 2012-04-19 12:58:00
@DBM:你说得对。你可以请分享一下,为什么当我指定的值不存在于UserDTO中时,它会自动将它设置为0(而不是-1)?也请创建一个答案,以便我可以将您的答复标记为答案。 – 2012-04-19 12:59:58