在我的应用程序中,我正在调用 Web 服务,通过使用 SoapExtension 和 SoapExtensionAttribute,我可以拦截传入和传出的 SOAP 消息以进行日志记录。我使用http://msdn.microsoft.com/en-us/magazine/cc164007.aspx中的示例作为输入。但现在我想更进一步。我有一个 Windows 客户端,它调用我的类(在一个单独的项目中),然后该类调用 Web 服务。我现在可以截获 SOAP 消息,但不是直接将它们记录到文件中,而是希望将这些消息传递回调用 Web 服务的类,也传递回调用我的类的客户端。这些是我到目前为止所做的代码更改:
private String ExtractFromStream(Stream target)
{
if (target != null)
return (new StreamReader(target)).ReadToEnd();
return "";
}
public void WriteOutput(SoapMessage message)
{
newStream.Position = 0;
string soapOutput = ExtractFromStream(newStream);
newStream.Position = 0;
Copy(newStream, oldStream);
}
public void WriteInput(SoapMessage message)
{
Copy(oldStream, newStream);
newStream.Position = 0;
string soapInput= ExtractFromStream(newStream);
newStream.Position = 0;
}
我现在想将soapInput 和soapOutput 传递回包含应用此属性的方法的类。关于我应该如何做到这一点的任何线索?