无法将具有Enum Property的对象从存储库项目传递到服务结构服务

问题描述 投票:0回答:1

我有一个Gender Enum并试图将它从一个对象从存储库层传递给服务方法。虽然,我添加了EnumMember和DataContract属性。

低于错误。

输入数据合约名称为'Gender:http://schemas.datacontract.org/2004/07/MyNamespace'的'MyNamespace.Gender'不是预期的。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。

c# asp.net-web-api azure-service-fabric
1个回答
1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.