无法将带有枚举 属性 的对象从存储库项目传递到服务结构服务
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 而不是枚举值。
我有一个性别枚举并试图将它从存储库层的对象传递到服务方法。不过,我向其中添加了 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 而不是枚举值。