如何将[DataMember]用于IEnumerable<;字符串>;对于WCF中的属性

如何将[DataMember]用于IEnumerable<;字符串>;对于WCF中的属性,wcf,Wcf,我正在尝试为下面的类使用[DataContract]和[DataMember] [DataContract] public abstract class TestClass { #region Public Contructors protected TestClass() { } #endregion #region Public Properties [DataMember] public IEnume

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

[DataContract]
public abstract class TestClass
{
    #region Public Contructors        
    protected TestClass()
    {
    }
    #endregion

    #region Public Properties   

    [DataMember]
    public IEnumerable<string> Subjects { get; set; }

    #endregion      


}
[DataContract]
公共抽象类TestClass
{
#地区公共建筑商
受保护的TestClass()
{
}
#端区
#区域公共财产
[数据成员]
公共IEnumerable主题{get;set;}
#端区
}
我得到以下错误

无法序列化成员TestClass.Subjects 属于System.Collections.Generic.IEnumerable`1[[System.String, mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089]]因为它是一个接口


我该怎么解决这个问题呢?

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

请记住,通过WCF发送的
序列化的
类可能更适合作为代理类或DTO,因此这样您就不会弄乱您的业务模型

希望这有助于

可能的重复: