给定以下枚举,该枚举仅在wcf服务中用作输出:

[DataContract]
public enum Role
{
   [EnumMember]
   Undefined = 0,

   [EnumMember]
   Admin,

   [EnumMember]
   Supervisor,

   [EnumMember]
   User
}


...是真的,我可以更改整数值而不破坏与现有客户端的兼容性吗?像这样:

[DataContract]
public enum Role
{
   [EnumMember]
   Undefined = 0,

   [EnumMember]
   Admin = 10,

   [EnumMember]
   Supervisor = 20,

   [EnumMember]
   User = 30
}


AFAIK枚举通过wcf(更确切地说是肥皂)作为字符串进行传输。我有什么想念的吗?

最佳答案

使用WCF客户端以及使用DataContract和DataContractSerializer时,WCF确实将数值保留在数据协定中。

如果不是这种情况,将仅转移成员名称。

资料来源:http://msdn.microsoft.com/en-us/library/aa347875.aspx

关于.net - wcf-更改整数值时枚举是否向后兼容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19300208/

10-10 13:01