메서드에 대한 유일한 매개 변수로 미리 정의 된 개체를 수신하는 하나의 메서드로 구성된 알림 수신기 웹 서비스를 구축 중입니다. 이 개체와 해당 구성 요소 개체가 정의 된 보낸 사람의 API에 대한 서비스 참조가 있고 서비스 참조의 자동 생성 코드에서 대부분 또는 모든 개체가 System.ComponentModel.INotifyPropertyChanged를 구현합니다. 따라서, 각각이 같은 내 WSDL에서 보여주는하여 PropertyChanged 회원이 있습니다 이러한 개체에서 INotifyPropertyChanged를 구현해야하는 이유SOAP에 PropertyChanged 노드가 없을 때 INotifyPropertyChanged 객체의 역 직렬화가 실패하는 이유는 무엇입니까?
<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>
나도 몰라, 그리고이하여 PropertyChanged 요소는 호출 알림 서비스가 전송되지 않습니다 내 리스너 서비스가 필요합니다. PropertyChanged에는 nillable = "true"속성이 있기 때문에 정상적으로 처리되어야합니다. 그러나 어떤 이유로 PropertyChanged 특성이 있어야한다는 오류가 발생할 때마다 : "메시지를 deserialize하려고 시도하는 동안 예외가 발생했습니다. 매개 변수 http://schemas.datacontract.org/2004/07/MyNamespace:DocuSignEnvelopeInformation을 역 직렬화하려고 시도하는 동안 오류가 발생했습니다. InnerException 메시지가 'Error in line 5 position 2162. 네임 스페이스 'http://schemas.datacontract.org/2004/07/MyNamespace'의 'EndElement' 'DocuSignEnvelopeInformation'이 필요하지 않습니다. 예상되는 요소 'PropertyChanged'. '자세한 내용은 InnerException을 참조하십시오. "
nillable로 표시된 경우 왜 'PropertyChanged'요소가 필요합니까? 내가 읽고있는 것으로부터, nillable은 속성이 XML에서 선택적이라는 것을 의미합니다. 이것은 사실이 아닌가?