如何在 WCF 中将 [DataMember] 用于 IEnumerable 属性<string>



我正在尝试使用[DataContract]和[DataMember]为下面的类。

[DataContract]
public abstract class TestClass
{
    #region Public Contructors        
    protected TestClass()
    {
    }
    #endregion
    #region Public Properties   
    [DataMember]
    public IEnumerable<string> Subjects { get; set; }
    #endregion      

}

我得到以下错误

不能序列化成员TestClass。主题1 . [[System.String],mscorlib, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089]]因为它是一个接口

我应该如何解决这个问题?

正如错误消息所说,您不能序列化像IEnumerable这样的接口。尝试使用具体的集合,如List<string>甚至string[]

请记住,您通过WCF发送的serialized类可能最好是代理类或DTO,因此这样您就不会弄乱您的业务模型。

希望能有所帮助

最新更新