Есть ли статья или полный пример, показывающий, как вставить Log8Net-регистратор в консольное приложение с помощью ninject? До сих пор мне удалось создать новый экземпляр в основном модуле, но я не смог понять, как его вводить. Ниже приведена какая-то конфигурация.Inject Log4Net в консольное приложение с использованием Ninject
Редактировать: Думал, я добавлю причину этого делать тоже. Я хотел бы ввести регистратор в другие классы для ведения журнала.
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(). –