2012-09-28 2 views
1

응답 문자열에서 HTML 인코딩 문자를 방지하려면 WCF의 설정을 재정의 할 수 있습니까?응답으로 WCF에서 문자열을 인코딩하지 못하게 하시겠습니까?

SOAP 호출을 통해 제 3 자 도구에서 호출하는 간단한 서비스가 있습니다. 응답 객체에는 XML을 포함 할 문자열로 구성된 단일 속성이 있습니다. WCF가 응답을 패키지화하면 다음과 같이됩니다.

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<HttpPostResponse xmlns="http://ws.lenderprise.com"> 
    <HttpPostResult> 
    &lt;STAT xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; &gt; 
     &lt;RESPONSE Attr1=&quot;1&quot; 
      Attr2=&quot;ABC&quot; 
     &lt;/RESPONSE&gt; 
    &lt;/STAT&gt; 
    </HttpPostResult> 
</HttpPostResponse> 

인코딩 된 문자열을 인코딩하지 않을 수 있습니까?

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<HttpPostResponse xmlns="http://ws.lenderprise.com"> 
    <HttpPostResult> 
    <STAT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > 
     <RESPONSE Attr1="1" 
      Attr2="ABC"> 
     </RESPONSE> 
    </STAT> 
    </HttpPostResult> 
</HttpPostResponse> 

나는이 여전히 처리 임베디드 문자를 보장하기위한 후크에 나에게 잎이 여전히 수신 측에 대한 고려를 의미하는 것으로 알고 있습니다.

답변

2

문자열 대신 XML을 반환하려는 경우 XElement 또는 XmlElement을 반환 유형으로 사용할 수 있습니다. 이 경우 문자열로 인코딩되지 않습니다.

+0

응답 문자열 매개 변수에 대해 HTMLEncoding을 방지 할 수 있습니까? –

+1

네, 그렇지만 쉽지는 않습니다. 커스텀 메시지 포맷터 (CLR 객체 (이 경우에는 문자열)와 WCF 메시지를 변환하는 구성 요소)를 사용해야합니다. 해당 경로를 사용하려는 경우 http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx의 게시물에 대한 자세한 정보가 있습니다. – carlosfigueira

관련 문제