假设我有一个像这样的简单wcf服务
[DataContract]
public enum VMType : int
{
[EnumMember]
Unknown = 0,
[EnumMember]
Virtual = 1,
[EnumMember]
Physical = 2,
}
[DataContract]
public class ClientRequest
{
[DataMember]
public string Code { get; set; }
[DataMember]
public VMType VMType { get; set; }
}
[ServiceContract]
public interface IService
{
[OperationContract]
int GetStatus(ClientRequest request);
}
如果将枚举VMType
更改为
public enum VMType : byte
{
这被认为是一个重大变化吗?旧的WCF客户端是否仍能连接到新的服务主机?
根据Enumeration Types in Data Contracts
通常,数据协定包括枚举成员名称,而不是数值
答案 0 :(得分:1)
这被认为是一个重大变化吗?
是。这将改变序列化,这将是一个重大变化。
旧的WCF客户端是否仍能连接到新的服务主机?
这在很大程度上取决于连接类型 - 特别是,哪个串行器用于映射数据。根据所使用的binding,这可能有效,也可能无效。