asp.net-mvc – Ninject.Extensions.Logging.nlog2 – 如何?
|
浏览nuget图书馆,我遇到了 Ninject.Extensions.Logging.nlog2.一些搜索和试图弄清楚,我似乎找不到如何或为什么你会使用这个扩展名. 建议使用MVC 3吗? 究竟是什么点? 你如何使用它? 解决方法真的很简单NLog和log4net都希望您使用单例/静态引用来获取记录器实例:private static Logger logger = LogManager.GetCurrentClassLogger(); 这被广泛认为是一种反模式,但即使你没有问题,如果你想实现依赖注入,它仍然会反对谷物.在NLog的情况下,它不是一个ILog或ILogger接口,如log4net,它是一个实际的类.这具有某些缺点,例如无法创建代理,延迟加载,缓存等. Ninject.Extensions.Logging项目所做的是首先使用诸如Info,Error等简单方法提供一个抽象的ILogger类,因此您可以将其注入为依赖关系,并根据需要切换日志框架: public class WidgetProvider
{
private readonly ILogger log;
public WidgetProvider(ILogger log)
{
this.log = log;
}
}
这是DI应该是如何工作的 – 一个类永远不会出来抓取自己的依赖关系,而是由构造函数或调用者提供如上.假设您已将Ninject自身集成到您的项目中,那么这就是您所需要做的一切,没有额外的工作. 至于Ninject.Extensions.Logging.NLog2是否具体实现 – 它仅提供基于NLog2的Ninject.Extensions.Logging的实现.基本记录库实际上并不包含ILogger的任何实现,您必须插入其中一个特定库(NLog,NLog2或log4net)才能使其运行. 如果您切换您的DI库更频繁地切换记录器,那么不要打扰它.但是,如果你像我一样在几乎每个项目中使用Ninject,那么这是一个很好的方式来将代码与任何特定的日志库分离开来. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 从单个Web服务器迁移到多个Web服务器负载平
- asp.net-mvc – ASP.Net身份登录重定向强制协议(Https)
- asp.net – 在Response.Redirect之后获取上一页网址
- asp.net – 如何防止Azure网站进入睡眠状态?
- asp.net-mvc – 单元测试视图?
- ASP.NET Azure中的Trace.WriteLine
- 你如何获得asp.net控件的自动生成的name属性?
- asp.net-mvc – 如何为ASP.NET MVC区域捆绑资源?
- asp.net-mvc – LINQ将DateTime转换为字符串
- asp.net – 与Entity Framework中的联结表有多对多的关系?
- asp.net-mvc – 抛出一个404像StackOverflow的,没
- asp.net-mvc-3 – 方法“OrderBy”必须在方法“跳
- 如何使用MSBuild发布Asp.NET Web应用程序?
- asp.net-mvc – ServiceStack应该是MVC应用程序中
- asp.net – 有没有办法以编程方式添加项目到元素
- asp.net – 如何防止网页上的CSS缓存?
- asp.net-web-api – Ajax Post:405方法不允许
- asp.net-mvc – ASP.NET MVC读取原始JSON信息数据
- 如何关闭ASP.NET必需的字段验证器“丢失焦点”行
- ASP.net RequiredFieldValidator不阻止回发
