강제로 WCF를 실행할 수있는 경우에도 디시리얼라이저는 입력을 지원하기 위해 올바르게 작동하지 않습니다. 아래의 예와 설명.
입력 1 (좋은) : 2 (나쁜)
<MyOperation>
<AField>value A</AField>
<BField>value B</BField>
</MyOperation>
입력 : 입력 1이 제대로 역 직렬화하는 경우
<MyOperation>
<BField>value B</BField>
<AField>value A</AField>
</MyOperation>
그래서, 다음 입력 2는 않을 것 - BField에 값이 것이라고 설정되었지만 AField 속성은 null이됩니다.
WCF가이 순서가 잘못된 입력을 처리 할 수 없다면 예외를 throw해야한다고 생각하지만 테스트 (.NET의 IIS 3.5)를 기반으로하지는 않습니다. 따라서 일부 요소 값은 건너 뜁니다. .
또한 WCF는 찾고있는 유효한 요소 값에 영향을주지 않는 한 완전히 가짜 입력을 무시합니다. 그래서이 입력
<MyOperation>
<bogusField>with or without data</bogusField>
<AField>value A</AField>
<bogusField2 />
<BField>value B</BField>
<bogusField3></bogusField3>
</MyOperation>
는 오류가 발생하지 않을, 실제로 멀리하고 BField의 값을 역 직렬화 것이다.
정말로 원하는 경우 WSDL을 만들기 위해 자신 만의 확장 기능을 작성할 수 있습니다. 완전히 사소한 것은 아니지만 수행 할 수 있습니다. 웹에서 "WCF WSDL extension"을 검색하십시오. 거기에 꽤 많은 샘플이 있어야합니다. –