【发布时间】:2015-05-26 11:45:38
【问题描述】:
我使用 Log4net 进行日志记录,并且我有很多具有 ILog 依赖项的对象。这些依赖项与其他依赖项一样注入。我想坚持 Log4net 记录器命名约定,以便注入到实例的记录器以实例的类型命名。我一直在为 ILog 使用以下绑定:
Bind<ILog>().ToMethod(ctx =>
LogManager.GetLogger(ctx.Request.ParentRequest == null ? typeof(object) : ctx.Request.ParentRequest.Service)
);
这违反了命名约定,因为记录器将以接口而不是实现类型命名。
interface IMagic {}
class Magic: IMagic
{
ILog logger; // The logger injected here should have the name "Magic" instead of IMagic
}
我尝试了几种方法从 ctx 获取实现类型,但均未成功。有没有办法获取实现类型?
【问题讨论】: