2010-05-05 5 views
2

DataContractSerializer가 SOAP를 통해 전송 될 때와 같은 방식으로 [MessageContract]을 직렬화하도록 만드는 방법이 있습니까?DCS를 사용하는 MessageContract serialization

은 내가 WCF 호출에 대한 와이어에 다음과 같이 나타납니다 클래스가있다 :

<TestRequest xmlns="http://webservices.test.com/ServiceTest/1.1"> 
    <Name>Just Me</Name> 
</TestRequest> 

수지상을 사용하여 직렬화, 그것은 다음과 같습니다

<TestRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/ServiceTest"> 
    <_x003C_Name_x003E_k__BackingField z:Id="2">Just Me</_x003C_Name_x003E_k__BackingField> 
</TestRequest>

나는이 불일치는 확신 내 수업은 데이터 계약 대신 메시지 계약으로 표시되기 때문에 :

 
    [MessageContract] 
    [Serializable] 
    public class TestRequest 
    { 
     [MessageBodyMember] 
     public string Name { get; set; } 
    } 

SOAP 메시징을 만들 때 WCF와 동일한 방식으로 DCS 직렬화 메시지를 만들 수있는 방법이 있습니까? 이자형?

답변

0

나는 Data Contract Surrogates을 찾고 있다고 생각합니다. BTW DataContractSerializer의 생성자를 사용하여 네임 스페이스와 루트 이름을 설정할 수 있습니다.

+0

데이터 계약 대리는 내가 원하는 것이 아닙니다. WCF가하는 것과 똑같은 방식으로 SOAP XML을 만들고 싶습니다. – kurtaj