WCF中可以使用枚举类型。那么如何才能正确的使用WCF枚举类型呢?在这里我们就为大家详细介绍一下这一方面的相关知识。#t#
1. 在服务契约上添加 ServiceKnownType(typeof(Enum))。
2. 为WCF枚举类型值添加 [EnumMember]。
[DataContract]
[Flags]
public enum DataType
{
[EnumMember]A = 1,
[EnumMember]B = 2,
[EnumMember]C = 4,
[EnumMember]D = 8
}
[ServiceContract]
[ServiceKnownType
(typeof(DataType))]
public interface IMyService
{
[OperationContract]
void Test(DataType d);
}
就可以了。 如果你使用默认的WCF枚举类型。 也就是[EnumMember]C = 4,
这种的值是由系统默认的。 那不用加 ServiceKnownType(typeof(Enum))和[EnumMember]。
[EnumMember]这种属性只不过是在服务端可以用而在客户端不可用。