[英]Autofac - dependency injection for MVC controller and Web Api controller
[英]Autofac with Web Api controller
我正在嘗試將Autofac與WebApi控制器一起使用。 我有 :
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
AutofacConfig.Register();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
這是我的AutofacConfig:
public class AutofacConfig
{
public static IContainer Container { get; private set; }
public static void Register()
{
var builder = new ContainerBuilder();
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
//Register repositories and services.
Container = builder.Build();
}
}
然后我試圖設置DependencyResolver:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Filters.Add(new ExceptionHandlingAttribute());
var container = AutofacConfig.Container;//I have registered controllers here!!!
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
}
但是在請求期間,我收到:“確保控制器具有無參數的公共構造函數”。
我也嘗試在AutofacConfig類中設置DependencyResolver,就像在教程中一樣
怎么了
該錯誤消息表示您的控制器具有某些依賴關系,Autofac不知道該依賴關系如何為您注入它們。 換句話說,控制器的構造函數具有一些需要注入的依賴項(參數),但是這些依賴項(服務)本身尚未在Autofac中注冊。
如果您共享控制器的構造函數代碼,我們將能夠為您識別那些未注冊的依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.