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()メソッドが実行されます。 –