0

我正在尝试将 [DataContract] 和 [DataMember] 用于以下课程。

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

    #region Public Properties   

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

    #endregion      


}

我收到以下错误

无法序列化 System.Collections.Generic.IEnumerable`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 类型的成员 TestClass.Subjects,因为它是一个接口

请问我应该怎么解决这个问题?

4

1 回答 1

2

正如错误消息所说,您不能序列化像IEnumerable. 尝试使用具体的集合,List<string>例如string[].

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

希望这可以帮助

于 2013-04-10T11:54:57.017 回答