WCF和ISomething的IList

时间:2013-01-09 16:04:26

标签: c# wcf ilist

我想知道如何通过WCF提供此对象:

[DataContract]
public class A : IA
{
    [DataMember]
    public List<IB> ListOfB { get; set; } 
}

public interface IA
{
    List<IB> ListOfB { get; set; }
}

使用IB类的B接口。

生成的XSD是:

<xs:complexType name="A">
  <xs:sequence>
    <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="ListOfB" nillable="true" type="q1:ArrayOfanyType"/>
  </xs:sequence>
</xs:complexType>
<xs:element name="A" nillable="true" type="tns:A"/>
</xs:schema>

ArrayOfanyType - &gt;我觉得它无法正常工作,因为IB无法标记为[DataContract]

1 个答案:

答案 0 :(得分:0)

对于序列化程序来解释您的合同,它们需要用具体类型而不是接口来表达。如果您将代码更改为此(并使用相应的DataContractDataMember属性注释B类,那么您应该很高兴。

[DataContract]
public class A
{
    [DataMember]
    public List<B> ListOfB { get; set; } 
}