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