Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net wcf-更改整数值时枚举是否向后兼容?_.net_Wcf_Enums_Backwards Compatibility - Fatal编程技术网

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

.net wcf-更改整数值时枚举是否向后兼容?,.net,wcf,enums,backwards-compatibility,.net,Wcf,Enums,Backwards Compatibility,给定以下仅在wcf服务中用作输出的枚举: [DataContract] public enum Role { [EnumMember] Undefined = 0, [EnumMember] Admin, [EnumMember] Supervisor, [EnumMember] User } …我可以更改整数值而不破坏与现有客户端的兼容性,这是真的吗?像这样: [DataContract] public enum Role {

给定以下仅在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)传输。我在这里遗漏了什么吗?

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

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

资料来源: