wcf - 更改整数值时枚举是否向后兼容?

时间:2013-10-10 15:34:57

标签: .net wcf enums backwards-compatibility

给出以下枚举,它仅用作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(soap,更确切地说)作为字符串传输。我有什么想念的吗?

1 个答案:

答案 0 :(得分:1)

当使用WCF客户端并使用DataContract和DataContractSerializer时,WCF会保留数据协定中的数值。

如果不是这种情况,则只会传输会员名称。

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