您的位置:首页 > 其它

AutoFac文档5(转载)

2013-08-29 16:54 211 查看

目录

开始

Registering components

控制范围和生命周期

用模块结构化Autofac

xml配置

与.net集成

深入理解Autofac

指导

关于

词汇表

扫描

autofac可以使用约定在程序集中注册或者寻找组件。

发现组件

autofac2可以根据用户指定的规则在程序集中注册一系列的类型,这种方法叫做convention-driven registration或者扫描。

1
2
3
4
5
var dataAccess = Assembly.GetExecutingAssembly();


builder.RegisterAssemblyTypes(dataAccess)

.Where(t => t.Name.EndsWith(
"Repository"
))

.AsImplementedInterfaces();


每个RegisterAssemblyTypes方法只能应用一套规则。如果有多套不同的集合要注册,那就有必要多次调用RegisterAssemblyTypes。

选择类型

RegisterAssemblyTypes接受程序集的集合。默认情况下,程序集中所有公共具体的类都会被注册。

如果想要过滤注册的类型,可以使用Where.向下面这样:

1
Where(t => t.Name.EndsWith(
"Repository"
))


如果想要排除某些类型,使用Except():

1
Except<MyUnwantedType>()


或者,自定义那些已经排除的类型的注册:

1
Except<MyCustomisedType>(ct =>ct.As<ISpecial>().SingleInstance())


多个过滤器可以同时使用,这时他们之间是AND的关系

指定服务

RegisterAssemblyTypes这个注册方法是注册单个方法的超集,所以类似As的方法也可以用在程序集中,例如

1
As<IRepository>()


As和Named这两个方法额外的重载方法接受lambda表达式来决定服务会提供什么样的类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: