我正在使用Unity.Wcf在服务类中注入依赖项,它工作正常。但是如果我错误地配置了我的依赖项,那么Unity会抛出异常,它无法构建我的服务实例,这是正确的。有谁知道我可以在哪里处理这个例外来记录它?检查日志要比每次调试都容易得多。
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
经过一些调查后,我发现了如何创建实例,似乎没有办法轻松添加日志记录。它唯一的方法是更改Unity.Wcf的源代码或继承几个类并覆盖默认行为。对于那些感兴趣的人,逻辑如下:UnityServiceHostFactory创建UnityServiceHost,UnityServiceHost添加行为类UnityInstanceProvider,这个UnityInstanceProvider有一个GetInstance方法,可以创建服务并进行Unity解析。因此,要记录您需要执行以下操作之一: