0

WCF/ASP.NET에서 호스팅하는 웹 서비스가 있습니다. 서비스 계약의 데이터 형식은 XSD.exe 생성 형식을 사용하므로 XmlSerialization 특성으로 장식되어 있습니다. /ser:XmlSerializer 매개 변수 사용을 포함하여 SvcUtil을 사용하여 클라이언트를 만들었습니다. 수년 동안 일 해왔다.WCF XmlSerialization이 DataContract Serialization으로 잘못 해석 됨 - 게시물 VS 2012 업데이트 1

VS 2012 및 v 8.0A Windows/.NET SDK NETFX 4.0 Tools 버전의 SvcUtil.exe (v 4.0.30319.17929)를 사용하기 위해 빌드 스크립트를 업그레이드했습니다.

Type 'System.Threading.Tasks.Task1[MyNamespace.MyClient.MyDataStructure]' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.

이 오류에서 우리의 응용 프로그램을 방지 :

우리의 고객이 때 우리는 지금 이상한 오류 메시지가 표시된다

(W 내장/VS 2012 새로운 8.0A는 svcutil)는 WCF 서비스를 호출하려고 시도 WCF 서비스에 전화를 걸 수 있으며 우리는 붙어 있습니다.

/async에 대한 매개 변수를 SvcUtil에 전달하지 않습니다. 또한 .NET SDK 8.0A (v 4.0.30319.17929)의 SvcUtil 도움말은 기본값이 generate synchronous and task-based asynchronous method signatures.임을 나타냅니다. System.Threading.TaskXmlSerializer 사이에 기본 제공 연결이 해제되어 있습니까?

우리가 XmlSerialization을 의도 할 때 DataContractSerialization을 사용하고 있다고 생각되면 런타임을 방지 할 수있는 방법에 대한 제안은 무엇입니까?

+0

[이 다른 질문]에서 볼 수 있습니다. (http://stackoverflow.com/questions/11546431/net-4-5-svcutil-generates-two-operations-with-the-name-name-method-and- methoda) @ vossad01에서'System.Threading.Tasks.Task1' 유형 랩핑 구조 생성을 막기 위해'/ syncOnly'를 추가 할 수 있습니다. 그러나 작업 기반 비동기 메서드를 사용하려면 어떻게해야합니까? –

답변

1

Microsoft의 답변을 얻으려면 here이라고 게시하십시오.

.NET 4.5 SvcUtil으로 빌드하고 .NET 4 런타임을 대상으로 만들려는 경우 /syncOnly이 필요합니다.