0
是否有文章或完整示例显示如何使用ninject将Log4Net注入器注入控制台应用程序?到目前为止,我已经设法在主模块中创建一个新实例,但无法弄清楚如何注入。以下是我有的设置。使用Ninject将Log4Net注入控制台应用程序
编辑:以为我会加上这样做的原因了。我想将记录器注入其他类中进行日志记录。
using System;
using System.Reflection;
using Ninject;
using Ninject.Modules;
namespace SomeNameSpace
{
public class MyProgram
{
public static void Main(string[] args)
{
log4net.Config.BasicConfigurator.Configure();
log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
try
{
log.Info("Application - Start");
Initialiase();
_something.DoSomething();
log.Info("Application - End");
}
catch (Exception ex)
{
log.Error("Application failed", ex);
}
}
private static void Initialiase()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
_something = kernel.Get<ISomething>();
}
}
public class Bindings : NinjectModule
{
public override void Load()
{
Bind<ISomething>().To<Something>();
}
}
}
我看不到你使用'Bindings'对象的地方......它是否来自'kernel.Load()'调用,如果是,它实际上是在运行你的Load()方法吗? – Brandon
是的,Bindings.Load()覆盖NinjectModule.Load()。是的,它运行我的Bindings.Load()方法。 –