PS:關於更多DevText的文章請到這裡查看:
http://www.n-pei.com/blog/devtext_widget_Create
http://www.n-pei.com/blog/devtextdesign3
http://www.n-pei.com/blog/tools-introduce
等等。。。。。。
昨天大家很多人抱怨沒有用過AutoFac,所以今天我就在把CR部署上線後,給大家說明下如何在asp.net mvc中整合Autofac這個IoC工具。並順帶著說明下在DevText中使用的FluentValidation。。。。
1.建立一個Asp.net Mvc應用程式:
2.添加autofac引用
如果你安裝了NuGet,這裡你就不需要從autofac官網下載產生的dll包,而直接用vs2010自動擷取。
這裡說明下如何使用NuGet來自動添加autofac的引用。
再次羅嗦下,呵呵,list-package是列出所有nuget已經打包好的package。你可以在中看到autofac.
接下來是使用install-package來自動添加引用。
因為我們使用的是NuGet自動添加dll所以原來需要手動設定Web.Config。在httpModule中添加如下配置:
3.配置Gobal.asax檔案
首先需要需要讓這個類繼承IContainerProviderAccessor介面,並聲明一個IContainerProver作為應用程式的容器。
第二步是在Application_Start方法中註冊Controller和一些model,以及modelBinder等,並使用Autofac中的自訂ControllerFactory。
以上就完成了Autofac的asp.net mvc整合。
接下來結合Autofac以及FluentValidation來給大家說明下FluentValidation如何工作。
我們使用介面IPerson和類Person來說明。
在Global.asax中register Person。
Validation部分:
先添加引用:
Validation的代碼風格:
最後是Controller部分和VIew部分:
在Controller中注意,因為我們使用的是Autofac的ControllerFactory,所以預設Controller的Construcotr是可以有n個參數的,而不是不允許有參數。
View部分代碼:
最後是別忘了在Global.asax中註冊我們的Validation Provider。
搞定,直接按F5運行試試: