摘要:Web api2使用Autofac
有點久沒寫文章了,其實使用ONENOTE之後,有些筆記或備忘,或備用範例就記錄在自己筆記本了,不過因為這方面的問題,我想可能對有些人有幫助,所以我就提供出我的做法。
因為我之前是用unity的版本,不過看了bruce大大的文章,發覺autofac好像更新支援上比較快,所以就花了一點時間改寫成autofac的。
首先先把web api全部更新到最新版,然後mvc也順便更新了,然後安裝Autofac ASP.NET Web API 2.1 Integraion,如果要更新Json.net的話請注意,請先參考bruce的文章,更新到最新版,不然會出錯。
我參考mrkt大大和burce大大的文章之後,整理了一下所以就寫成這樣子,先在App_Star加入AutofacConfig.cs,再加入下面的程式碼
public static void Bootstrapper() { // 容器建立者 var builder = new ContainerBuilder(); // 註冊Web API Controllers builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // 註冊相依關係 builder.Register(c => new TaiwanAreaService()).As<itaiwanareaservice>(ITaiwanAreaService).InstancePerApiRequest(); // 建立容器 var container = builder.Build(); // 建立相依解析器 var resolver = new AutofacWebApiDependencyResolver(container); // 組態Web API相依解析器 GlobalConfiguration.Configuration.DependencyResolver = resolver; }
註冊相依關係的這行最重要,也就是您要注入的介面和類別的對應
然後再去Global.asax的protected void Application_Start()裡面加入這行
AutofacConfig.Bootstrapper();
我測試這樣就可以了..........希望對有需要的人會有幫助。