📄 18.5.txt
字号:
Listing 18.5 A Sink Class Implementation to Log Remoting Requests to a File
public void ProcessMessage(IMessage msg, ITransportHeaders requestHeaders,
Stream requestStream,
out ITransportHeaders responseHeaders,
out Stream responseStream)
{
StreamWriter writer = new StreamWriter(logFilename, true);
writer.WriteLine(“---- Message from the client ({0:T})----”, DateTime.Now);
writer.WriteLine(“...Request Headers...”);
foreach (DictionaryEntry header in requestHeaders)
{
writer.WriteLine(“header - {0} = {1}”, header.Key, header.Value);
}
writer.WriteLine();
IDictionary dict = msg.Properties;
foreach (object key in dict.Keys)
{
writer.WriteLine(“{0} = {1}”, key, dict[key]);
}
long pos = requestStream.Position;
byte[] buffer = new byte[requestStream.Length];
requestStream.Read(buffer, 0, (int)requestStream.Length);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
string request = enc.GetString(buffer, 0, buffer.Length);
writer.WriteLine(“...Request...”);
writer.WriteLine(request);
Console.WriteLine();
// set stream to previous position for message processing
requestStream.Seek(pos, SeekOrigin.Begin);
writer.WriteLine(“----------------------------------------------”);
writer.Close();
// Hand off to the next sink in the chain.
nextSink.ProcessMessage(msg, requestHeaders, requestStream,
out responseHeaders,
out responseStream);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -