2011-08-24 6 views
2

WCF 휴식 서비스가 있습니다. 객체 목록을 반환하는 메소드가 있습니다. 개체 형식은 DataContract로 설정되며 DataMembers가 있습니다. 이제 위대한 작품, 내 방법을 통해 XML로 개체의 내 목록을 얻을 수 있습니다. 그것은 훌륭하고 훌륭합니다.WCF REST 결과 XML

내 질문은 : 메서드에서 반환하기 전에 결과 XML 가져 오는 방법이 있습니까? 그래서, REST를 통해 메서드를 호출 할 때 얻을 수있는 것과 동일한 메서드 내에서 동일한 XML을 사용할 수 있습니까?

.net4/VS2010

답변

3

알폰소의 대답은 바로 다소,하지만 당신은 당신이 DataContractDataMember를 사용하고 언급했다. XmlSerializer 클래스는 데이터 계약과 함께 사용되지 않습니다. 대신 당신이 찾고있는 것은 DataContractSerializer입니다. 그 사용법은 매우 유사하지만 다음과 같이 보입니다.

DataContractSerializer serializer = new DataContractSerializer(typeof(YourResultType)); 
StringBuilder stringBuilder = new StringBuilder(); 

using(XmlWriter xmlWriter = XmlWriter.Create(stringBuilder)) 
{ 
    serializer.WriteObject(xmlWriter, someInstanceOfYourResultType); 
} 

// use stringBuilder.ToString() to get the XML 
+0

대단히 감사합니다. 작동 중입니다! – Tom

1

당신이 그것을 반환하기 전에 XML 문자열로 결과를 저장하기 위해 XmlSerializer를 사용할 수 있습니다.

XmlSerializer ser = new XmlSerializer(typeof(YourResultType)); 
StringBuilder sb = new StringBuilder(); 
StringWriter sw = new System.IO.StringWriter(sb); 
ser.Serialize(sw, yourResult); 
// Use sb.ToString() 
+0

Thx alfonso, 제가 확인하겠습니다! :) – Tom

+1

XmlSerializer는 Tom이 사용중인 DataContract/DataMember 특성을 따르지 않으므로 DataContractSerializer를 사용해야합니다. –