作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在温莎城堡容器中注册了以下类:
namespace MyNamespace
{
class Foo : IFoo
{
public Foo(ILog log)
{
_log = log;
}
...
}
}
ILog
是一个 log4net 记录器,目前是这样注册的:
Component.For<ILog>().UseFactoryMethod(
() => LogManager.GetLogger(Assembly.GetCallingAssembly().FullName));
我想创建一个名为调用类型(在本例中为"MyNamespace.Foo"
)而不是调用程序集的记录器。有没有办法做到这一点,除了使用反射来玩堆栈帧?
最佳答案
温莎城堡伐木设施可以满足您的需求。它已经与 log4net 或 NLog 集成(参见:how to set up logging facility)。
如果您仍然好奇,可以检查源代码以了解它究竟是如何完成的。看看 log4net Integration source和 logging facility源代码,尤其是在 LoggerResolver 类(执行名称解析)。
关于c# - CaSTLe 温莎依赖注入(inject) : Use the caller type as a parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5740108/
我是一名优秀的程序员,十分优秀!