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应用程序:

image

 

2.添加autofac引用

如果你安装了NuGet,这里你就不需要从autofac官网下载生成的dll包,而直接用vs2010自动获取。

image

这里说明下如何使用NuGet来自动添加autofac的引用。

image

再次罗嗦下,呵呵,list-package是列出所有nuget已经打包好的package。你可以在上图中看到autofac.

接下来是使用install-package来自动添加引用。

因为我们使用的是NuGet自动添加dll所以原来需要手动配置Web.Config。在httpModule中添加如下配置:

image

 

3.配置Gobal.asax文件

首先需要需要让这个类继承IContainerProviderAccessor接口,并声明一个IContainerProver作为应用程序的容器。

image

 

第二步是在Application_Start方法中注册Controller和一些model,以及modelBinder等,并使用Autofac中的自定义ControllerFactory。

image

以上就完成了Autofac的asp.net mvc集成。

接下来结合Autofac以及FluentValidation来给大家说明下FluentValidation如何工作。

我们使用接口IPerson和类Person来说明。

image

在Global.asax中register Person。

image

Validation部分:

先添加引用:

image

Validation的代码风格:

image

最后是Controller部分和VIew部分:

image

在Controller中注意,因为我们使用的是Autofac的ControllerFactory,所以默认Controller的Construcotr是可以有n个参数的,而不是不允许有参数。

View部分代码:

image

最后是别忘了在Global.asax中注册我们的Validation Provider。

image

 

搞定,直接按F5运行试试:

 

image

 

BRs

Nic

你可能感兴趣的:(validation)