这是我第一次使用 autofac & mvc 4。我已经使用 Nuget 包安装了 AutoFac。我的nuget包安装:
<package id="Autofac" version="3.1.5" targetFramework="net45" />
<package id="Autofac.Mvc4" version="3.1.0" targetFramework="net45" />
我的记录器有三个实现:
builder.RegisterType<DbLogger>().As<ILogger>();
builder.RegisterType<TextLogger>().As<ILogger>();
builder.RegisterType<MemoryLogger>().As<ILogger>();
我的家庭控制器使用以下代码注册:
// in case we want to exclude this in external dll
builder.RegisterControllers(Assembly.GetCallingAssembly());
我的所有三种实现的 Home 控制器构造函数都很简单:
private ILogger[] loggers;
public HomeController(ILogger[] loggers)
{
this.loggers = loggers;
}
如何将特定的“MemoryLogger”注册到我的 MemoryController?
private ILogger _memoryLogger;
public MemoryController(ILogger logger)
{
this._memoryLogger = logger;
}
我知道我可以用特定的实现重新注册控制器。
与 Ninject 相同