우선은 내가 WSDL을 가지고있다, 그래서WSDL 웹 참조 클라이언트와 비누 문자열 모두의
좋아 나와 함께 기다려주십시오 WCF/WSDL 영역에 전체 멍청한 놈을 반환하는 방법을 변경, XSD 복잡한 메시지 유형, C# 콘솔 응용 프로그램에서 테스트 클라이언트를 생성했습니다. reference.cs에서 생성 된 WSDL 코드에 대한 웹 참조를 추가했습니다.
reference.cs에서 사용할 수있는 메서드를 호출 했으므로 잘 동작합니다. 비누 요청/응답을 기록하기 위해 reference.cs의 메소드에 비누 추적 확장을 추가했습니다.
클라이언트에서 WSDL 복합 유형 클래스 객체를 얻습니다. 여기서 모든 것은 동기화 및 비동기 호출 모두에 대해 정상적으로 반환됩니다.
이제 내가 원하는/시도하고, deserialized 클래스 개체가 아니라 비누 문자열을 반환하는 메서드를 원할 때 그들은 스트림 및 deserialization 전에 받았습니다.
비누 문자열을 반환하는 방법을 어떻게 변경합니까? 그것들에 접근하는 것이 아니라 (나는 계속하기 위해) 메소드로부터 직접 리턴하는 것입니다.
올바른 방향으로 나를 가리켜 주십시오. 피하려고 노력하는 soapclient를 구현해야합니다.
감사합니다. 나는 물건을 분명히해야하는지 알려주세요.
업데이트 :
좋아하는 선생님이 내가 무슨 짓을 :
다음,는 svcutil을 사용하여 WSDL에서 클래스를 생성 : 나는 XML 응답을 얻었다ServiceClient1 sc1 = new ServiceClient1();
TestResponseClass trc1 = sc1.method1("Testinput");
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(TestResponseClass),"http://xxx.xxx.xxx.local/Service1.wsdl");
StringWriter stringWriter = new StringWriter();
x.Serialize(stringWriter, trc1);
Console.Write(stringWriter.ToString());
이런 식으로. 내가 원했던 것에 더 가깝게, 나는 그것을 비누 대응으로 바꾸려고 노력할 것이다. 나는 지금 당장 바른 길을 가기를 바랍니다. 그렇지 않을 경우 수정하십시오. 빨리 배우고 배우는 것 ... 나는 추측한다
왜 "SOAP 응답"을 원하십니까? –
답장을 보내 주셔서 감사합니다. 나를 옳은 길로 인도합니다. 즉, 설명하기가 조금 복잡하지만 요컨대 클라이언트와 연결된 다른 클라이언트가있을 것이고 그들은 비누 봉투를 원하지만 다시 생각할 것입니다. 위의 XML에 더 잘 맞습니다. 위의 직렬화 방법을 확인하십시오. XML 백은 정확하고 효율적입니다 (정확한 XML을 제공하지만). 존 감사합니다. – SSA
다른 클라이언트가 귀하의 컴퓨터에 어떻게 연결되어 있습니까? 네트워크를 통해 문제가 없다면. 여러분은 XML을 가지고 놀 필요가 없습니다. –