0

我正在使用 Unity.Wcf 在服务类中注入依赖项,它工作正常。但是,如果我错误地配置了我的依赖项,则会引发一个异常,即它无法构建我的正确服务实例。有谁知道我可以在哪里处理这个异常来记录它?检查日志比每次调试要容易得多。

4

2 回答 2

2

捕获异常的另一种方法是覆盖服务工厂中的 CreateServiceHost 方法。在 try...catch 块内调用 base.CreateServiceHost() 并使用您选择的日志记录组件将异常保存到日志中。除了记录错误之外,行为将是相同的。

public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
{
    try {
        return base.CreateServiceHost(constructorString, baseAddresses);
    }
    catch (Exception ex) {
        // log here
        throw;
    }
}
于 2013-06-24T19:23:50.240 回答
0

经过一些调查,我发现了实例是如何创建的,似乎没有办法轻松地向其中添加日志记录。更改 Unity.Wcf 的源代码或继承少数类并覆盖默认行为的唯一方法。对于那些感兴趣的人,逻辑如下:UnityServiceHostFactory创建UnityServiceHost,UnityServiceHost添加行为类UnityInstanceProvider,这个UnityInstanceProvider有一个GetInstance方法来创建服务并进行Unity解析。因此,要记录某些内容,您需要执行以下操作之一:

  1. 用你的替换这个类并继承 UnityServiceHostFactory 和 UnityServiceHost
  2. 获取源并在此类 (UnityInstanceProvider) 中进行正确更改。
于 2013-05-14T07:51:19.850 回答