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

Unable to pass an object with Enum Property from repository project to service fabric service

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

低于错误。

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

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

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

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

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