2013-12-17 85 views
0

在過去的幾個小時裏,我嘗試將Autofac和ASP.NET Web API 2應用程序集成在一起。我一直在關注Autofac和它的維基在Integrating with ASP.NET Web API如何將Autofac和Log4Net與ASP.NET Web API 2集成應用程序

但很明顯,這個wiki對於Web API 2已經過時了。有沒有人有辦法配置我的應用程序來使用Autofac?我只是放棄並回到Ninject。

我已經安裝了AutofacAutofac.WebApi2Autofac.Mvc5

我無法撥打以下

containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly());

.InstancePerApiRequest();不可達。事實上,我試圖用名稱中的Api調用的任何內容都沒有定義。 (如RegisterApiControllers, AsWebApiActionFilterFor, RegisterWebApiFilterProvider, InstancePerApiRequest, InstancePerApiControllerType

此外,我正在嘗試使用Log4Net,並且我已經實現了該模塊的wiki,現在在wiki中顯示的LoggingActionFilter中,我將如何替換該行,因爲Log4Net不包含定義爲Write

_logger.Write(actionContext.ActionDescriptor.ActionName);

回答

2

嘗試使用Autofac.WebApi5的NuGet(一定要使用語法安裝發行候選套裝),而不是Autofac.WebApi2包。然後,在Global.asax.cs中使用這樣的代碼初始化:

IocContainer container = // code to create your container 
GlobalConfiguration.Configuration.DependencyResolver = 
    new AutofacWebApiDependencyResolver(container); 

這個設置是爲我工作的上MVC5/API2項目。

+0

它確實沒有區別。我需要的是一個更新的wiki或與web api兼容的說明2 – Komengem

+0

@KomengeMwandila根據alexmg(autofac的創建者),WebApi5 nuget是[使用的](https://groups.google.com/d/)。 MSG/autofac/ASmqK4TzEos/PjY837sjdDQJ)。你可以閱讀更多關於[這些]中的web api包(http://alexmg.com/new-features-in-the-autofac-mvc-4-and-web-api-beta-integrations/)[two] (http://alexmg.com/autofac-262859-and-aspnet-mvc-4-rc-integrations-released/)博客文章。上述設置在我的答案是爲我工作。當你嘗試時會發生什麼?你能發佈代碼或錯誤消息嗎? –

+0

看起來現在所有東西都可以工作,出於某種原因,我沒有得到'Autofac.Integration.WebApi;'命名空間。另外請注意,與您提到的web api 5軟件包相比,Web API 2是最新的軟件包。我比較了發佈日期。 – Komengem

相關問題