0

メソッドへの唯一のパラメーターとして事前定義されたオブジェクトを受け取る 1 つのメソッドだけで構成される通知リスナー Web サービスを構築しています。このオブジェクトとそのコンポーネント オブジェクトが定義されている送信者の API へのサービス参照があり、サービス参照の自動生成コードでは、ほとんどまたはすべてのオブジェクトが System.ComponentModel.INotifyPropertyChanged を実装しています。したがって、それぞれに PropertyChanged メンバーがあり、WSDL では次のように表示されます。

<xs:complexType name="DocuSignEnvelopeInformation">
    <xs:sequence>
        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System.ComponentModel" name="PropertyChanged" nillable="true" type="q1:PropertyChangedEventHandler"/>
        ...
    </xs:sequence>
</xs:complexType>

これらのオブジェクトが INotifyPropertyChanged を実装する必要がある理由がわかりません。この PropertyChanged 要素は、リスナー サービスを呼び出す通知サービスによって送信されることはありません。PropertyChanged には属性 nillable="true" があるため、これで問題ありません。しかし、何らかの理由で、PropertyChanged 属性が必要であることを示すたびにエラーがスローされます。/2004/07/MyNamespace:DocuSignEnvelopeInformation . The InnerException message was 'Error in line 5 position 2162. 'EndElement' 'DocuSignEnvelopeInformation' from namespace ' http://schemas.datacontract.org/2004/07/MyNamespace' は想定されていません。要素 'PropertyChanged'.' が必要です。詳細については、InnerException を参照してください。」

nillable としてマークされている場合、要素 'PropertyChanged' が期待されるのはなぜですか? 私が読んでいることから、nillable は属性が xml でオプションであることを意味します。これは真実ではありませんか?

4

1 に答える 1