WCF svcutil이 document/literal wrapped 형식이라고 생각하는 WSDL 작성에 대한 지침을 http://blogs.msdn.com/b/donsmith/archive/2006/10/06/handcrafting-wcf_2d00_friendly-wsdls.aspx에서 수행하려고했습니다. 그렇게 할 때 svcutil은 데이터 계약 serializer를 사용하는 C#에서 서비스 인터페이스와 프록시 코드를 생성하고 래퍼 작업에서 OperationContractAttributes를 생성해야합니다. 대신 BlahResponse 클래스에 중첩 된 BlahResponse1 클래스를 사용하여 이상한 이중 줄 바꿈을 얻었고 svcutil은 WSDL이 래핑되지 않았으며 OperationContracts가 아닌 MessageContracts를 만들 것이라고 알려줍니다.WSDL이 doc/lit/wrapped 인 WCF Data Contract Serializer를 설득하는 방법
서비스 소비자가 코드를 읽을 수 있도록 BlahResponse1 클래스를 없애고 WSDL이 래핑되었음을 svcutil에 알리고 싶습니다. 어떻게 그 일을합니까? 어쩌면 어떻게 하나가 이 아니며을 수행 할 수 있습니까?
데이터 계약이 될 스키마의 모든 요소가 아닌 일부 요소에서 nillable = "true"를 설정하는 것이 좋습니다. 어느 것이 nillable이어야하고 왜이어야 하는가? nillable = "true"로 설정하는 것이 좋지 않은 nillable이 아닌 요소가 필요합니까?
위의 링크에서 알 수 있듯이 스키마를 두 개의 네임 스페이스로 나누어 보았지만 작동하지 않는 것처럼 보였습니다 (또는 다른 문제로 인해 가려졌습니다). 스키마 네임 스페이스, 가져 오기 대 포함, 중요한 선언 순서가 있습니까?
나는 스키마/WSDL을 포함 할 것이지만, 독점적 인 것입니다. 또한 매우 크고 많은 파일에 퍼져 있습니다.
또한 .NET 참조 유형으로 변환하는 모든 요소는 스키마 정의의 요소 선언에서 nillable = true 특성을 가져야합니다. 여기에는 로컬 요소, 문자열 등을 정의하기 위해 스키마에서 재사용되는 모든 complexType이 포함됩니다. int, boolean, bytes 등은 포함하지 않습니다. 여기에있는 유형에 대한 자세한 내용 : http://stackoverflow.com/questions/1658985/what -is-a-value-class-and-a-a-a-reference-class-in-c를 사용합니다. – Greg