无法将具有枚举属性的对象从存储库项目传递到服务结构服务

时间:2019-03-08 09:19:53

标签: c# asp.net-web-api azure-service-fabric

我有一个性别枚举,并尝试将其传递到对象中,从存储库层传递到服务方法。不过,我向其中添加了EnumMember和DataContract属性。

遇到错误。

不希望输入数据协定名称为“ Gender:http://schemas.datacontract.org/2004/07/MyNamespace”的“ MyNamespace.Gender”。将所有静态未知的类型添加到已知类型的列表中,例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型的列表中。

1 个答案:

答案 0 :(得分:1)

您需要向使用枚举类型的KnownType类添加DataContract属性。

[DataContract]
[KnownType(typeof(Shape))]
public class CompanyLogo
{
    [DataMember]
    private Shape ShapeOfLogo;
    [DataMember]
    private int ColorOfLogo;
}

这将在WSDL中公开枚举类型,以便服务的客户端理解您正在使用的类型。

或者,您可以将枚举转换为它的基本类型,并将其公开为int而不是枚举值。