[转载]Asp.net mvc 集成Autofac和FluentValidation – 爱因斯坦的小脑 – 博客园.
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运行试试:
BRs
Nic