0

このオブジェクトを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>

IBArrayOfanyType->タグ付けできないため、機能しないと感じています[DataContract]

4

1 に答える 1

0

シリアライザーがコントラクトを解釈するには、インターフェイスではなく具体的​​な型で表現する必要があります。コードをこれに変更し (そしてクラス B に適切なDataContractandDataMember属性で注釈を付ければ)、問題なく使用できるはずです。

[DataContract]
public class A
{
    [DataMember]
    public List<B> ListOfB { get; set; } 
}
于 2013-01-09T16:18:56.770 に答える