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()方法。 –