2
假設我有一個像這樣正在改變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服務?舊的WCF客戶端是否仍然能夠連接到新的服務主機?
按Enumeration Types in Data Contracts
一般的數據合同包括枚舉成員的名字,而不是數值
你有任何引用**改變序列化**,根據MSDN枚舉數據類型通常使用**枚舉成員名稱,而不是數值** – 2012-08-13 16:35:41
@parapurarajkumar它完全取決於正在使用的數據合同。通常,枚舉將被串行化爲一個字符串,但也有例外,例如JSON序列化程序(http://msdn.microsoft.com/zh-cn/library/bb412170.aspx) – 2012-08-13 16:53:34