Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF中操作参数的通用日志记录_C#_Wcf - Fatal编程技术网

C# WCF中操作参数的通用日志记录

C# WCF中操作参数的通用日志记录,c#,wcf,C#,Wcf,我有一个WCF服务(happy joy),我的所有消息都继承自抽象类MessageBase,并实现以下接口 public interface IMessageBase<T> where T : class { String Serialize(T data); T Deserialize(string text); } 公共接口IMessageBase,其中T:class { 字符串序列化(T数据); T反序列化(字符串文本); } 每次我的一个操作合同被这样的消

我有一个WCF服务(happy joy),我的所有消息都继承自抽象类MessageBase,并实现以下接口

public interface IMessageBase<T> where T : class
{
    String Serialize(T data);
    T Deserialize(string text);
}
公共接口IMessageBase,其中T:class
{
字符串序列化(T数据);
T反序列化(字符串文本);
}

每次我的一个操作合同被这样的消息击中时,我都想记录这条消息。一旦请求了一个方法,并且其中一个入站参数可分配给IMessageBase,那么我希望执行日志记录,而不必使用实际的方法。我将如何实现这一点?我想我需要在IDispatchMessageInspector中执行此操作,但如何执行?

请查看一些好的资源:


如果这是用于进程外审核或调试,您可以在.config中添加跟踪或消息日志。试试wcf配置编辑器,它很简单,可以写出xml文件,您可以使用提供的工具查看这些文件,也可以根据需要进行解析


如果您希望在发出请求时处理实时结果,请参阅有关message inspector的其他答案。

您想在服务器端(然后是-IDispatchMessageInspector)还是在客户端登录??(在这种情况下,您需要一个IClientMessageInspector)我刚刚添加了一个LoggingMessageInspector。首先,wolfpack中有一个单独的UnitOfWorkMessageInspector。然后来了一个伐木检查员,加入了狼群。他们是任何人都能拥有的两个最好的朋友!