2013-03-01 23 views

回答

4

如果您没有使用EnumMember属性标记枚举值,它将不会成为数据合同 的一部分。这意味着它不会出现在wsds/contract/proxies中,并且客户端将无法使用它。

+1

没有写在http://msdn.microsoft.com/en-us/library/aa347875(v=vs.110).aspx聊天下的“简单枚举”它说如果你什么也没有写,那么它的可序列化为如果你将标志设置为全部。 – 2014-11-25 05:08:35

+0

也就是说:只有在*类型用DataContractAttribute标记时,Opt-in才适用*。 – user2864740 2015-03-04 19:23:53

0

它不一定会在客户端上公认的已知类型Color中的一员,因为你没有明确说这是合同的一部分,因此没有理由产生时尊重代理。

9

正如你已经应用了DataContractAttribute的枚举,必须明确说明这是枚举的成员应包括,通过使用EnumMemberAttribute的。

因此,在您的情况下,两个枚举将生成两个不同的合同,一个没有成员,一个有两个成员,RedBlue

如果您不将DataContractAttribute应用于某个枚举,则该枚举的所有成员都将隐含在合同中。

一个解释参见here,主要是Enumeration Member ValuesNotes on Simple Enumerations部分。

相关问题