【发布时间】:2014-12-31 03:40:25
【问题描述】:
我有基础控制器,我尝试了属性注入但不起作用......
public class BaseController : Controller
{
public ILoggingService loggingService { get; set; }
public BaseController()
{
}
}
这是我的 Autofac 配置...
var builder = new ContainerBuilder();
// builder.Register(c => new BaseController { loggingService = c.Resolve<ILoggingService>() });
builder.RegisterControllers(Assembly.GetExecutingAssembly())
.PropertiesAutowired();
builder.Register(c => new BaseController()).OnActivated(e =>
{
e.Instance.loggingService = e.Context.Resolve<ILoggingService>();
});
builder.RegisterAssemblyTypes(Assembly.Load("Aizen.Services"))
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces()
.InstancePerRequest();
【问题讨论】:
-
你不应该首先使用属性注入。构造函数注入是建议的常见做法。 Autofac 将支持开箱即用。
标签: c# asp.net-mvc dependencies autofac code-injection