我有一个Gender Enum并试图将它从一个对象从存储库层传递给服务方法。虽然,我添加了EnumMember和DataContract属性。
低于错误。
输入数据合约名称为'Gender:http://schemas.datacontract.org/2004/07/MyNamespace'的'MyNamespace.Gender'不是预期的。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。
您需要将KnownType
属性添加到使用枚举类型的DataContract
类中。
[DataContract]
[KnownType(typeof(Shape))]
public class CompanyLogo
{
[DataMember]
private Shape ShapeOfLogo;
[DataMember]
private int ColorOfLogo;
}
这将在WSDL中公开枚举类型,以便服务的客户端了解您正在使用的类型。
或者,您可以将枚举转换为其基类型,并将其作为int而不是枚举值公开。