在我的應用程序中,我正在調用Web服務,並且通過使用SoapExtension和SoapExtensionAttribute,我可以攔截傳入和傳出的SOAP消息以進行日誌記錄。我使用http://msdn.microsoft.com/en-us/magazine/cc164007.aspx中的示例作爲輸入。 但現在我想更進一步。我有一個Windows客戶端調用我的類(在一個單獨的項目中),然後類調用Web服務。我現在可以攔截SOAP消息,但不是直接將它們記錄到文件中,而是想將這些消息傳回給我的類,該類調用Web服務,並返回給調用我的類的客戶端。這是迄今爲止我所做的代碼更改:將信息傳遞給在其上應用SoapExtensionAttribute的對象
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回到那個認爲,這個屬性被應用在方法的類。我應該怎麼做的任何線索?