我想使用Autofac和Autofac.Integrations.Web來註冊ASP.NET MVC控制器。我目前正在使用程序集掃描來查找控制器,但其中一個需要一個特殊的參數,我寧願傳入。下面是我嘗試過的註冊。自定義Autofac控制器註冊
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
// so far I have tried
builder.Register<SpecialController>(c =>
new SpecialController(wierdParam, c.Resolve<IDependency>())
).Named<SpecialController>("controller.special")
.As<SpecialController>().As<IController>();
/* And this
builder.Register<SpecialController>(c =>
new SpecialController(url, c.Resolve<IDependency>())
);
*/
/* plus this
builder.Register<SpecialController>(c =>
new SpecialController(url, c.Resolve<IDependency>())
).Named<SpecialController>("controller.special");
*/
謝謝你的幫助。
高興你發現了它,也許我們應該添加一個擴展來簡化這種override-我帶你去看看它。謝謝! – 2010-02-27 21:48:21
謝謝你這麼棒的工具。啓動和運行非常容易。即使你不添加這個作爲擴展,你可能會考慮將其添加到MVC/Web集成wiki頁面。 – smaclell 2010-03-01 17:02:06