我正在尝试在任何源自我的控制器上自动设置属性 BaseController
类。这是我的代码 Application_Start
方法。该 UnitOfWork
当我尝试访问它时,property始终为null。
var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterType<VesteraTechnologiesContext>().As<IContext>();
builder.RegisterType<UnitOfWork>().As<IUnitOfWork>();
builder.RegisterType<BaseController>()
.OnActivated(c => c.Instance.UnitOfWork = c.Context.Resolve<IUnitOfWork>());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
这是BaseController的样子
public class BaseController : Controller
{
public IUnitOfWork UnitOfWork { get; set; }
}
我试图通过一个属性而不是通过构造函数来做这个的原因是我不必在每个需要访问的控制器中复制构造函数 UnitOfWork
属性,因为构造函数不是继承的。