我有一个性别枚举,并尝试将其传递到对象中,从存储库层传递到服务方法。不过,我向其中添加了EnumMember和DataContract属性。
遇到错误。
不希望输入数据协定名称为“ Gender:http://schemas.datacontract.org/2004/07/MyNamespace”的“ MyNamespace.Gender”。将所有静态未知的类型添加到已知类型的列表中,例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型的列表中。
答案 0 :(得分:1)
您需要向使用枚举类型的KnownType
类添加DataContract
属性。
[DataContract]
[KnownType(typeof(Shape))]
public class CompanyLogo
{
[DataMember]
private Shape ShapeOfLogo;
[DataMember]
private int ColorOfLogo;
}
这将在WSDL中公开枚举类型,以便服务的客户端理解您正在使用的类型。
或者,您可以将枚举转换为它的基本类型,并将其公开为int而不是枚举值。