Autofac学习笔记
2015-09-03 23:04 一叶之秋愁上头 阅读(326) 评论(0) 收藏 举报1. 下载地址:
https://github.com/autofac/Autofac
2 . 官网:
http://docs.autofac.org/en/latest/
3. 主要学习点:
- Register方法
1) RegisterType是以注册类型;类型已知进行注册
builder.RegisterType<类型 >();
2) Register是以Lampda方式进行注册;
builder.Register(c => new DatabaseManager(c.Resolve<IDatabase>()));
此处蓝字部分等同构造函数
3) RegisterInstance是注册对象实例;已知一个实体类型与值 如:
User user = new User { Id = 1, Name = "leepy" };
builder.RegisterInstance(user).As<User>();
4) RegisterMoudle 是配置文件注册对象
builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
未全部列完,以下没有弄
5) RegisterSource
6) RegisterComponent
7) RegisterDecorator
- Reslove方法,主要是把Builder中注册的内容转换成真实的数据
4. 配置方法—(问题对于方法如何注入---正在寻找方法)
component属性包含如下:
type; service; instance-scope; instance-ownership; name; inject-properties
component子属性包含如下:
services; parameters; properties; metadata
相关链接如下:
http://docs.autofac.org/en/latest/configuration/xml.html#id2
配置范例如下:
<configSections> <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/> </configSections> <!-- 此处开头要name 一致,引用程序集 --> <autofac defaultAssembly="ConsoleApplication1"> <!-- 组件配置 --> <components> <!-- 单个组件配置 --> <component type="ConsoleApplication1.Teacher,ConsoleApplication1" service="ConsoleApplication1.IPerson"> <!-- 构造函数 --> <parameters> <parameter name="name" value="LiuLvFeng"> </parameter> </parameters> <!-- 属性配置 --> <properties> <property name="Info" value="Teacher"> </property> </properties> </component>
5. 具体调用与使用
// 初始化容器 var builder = new ContainerBuilder(); // 注册类型 builder.RegisterType<ShowInfo>(); // 注册模型(读取配置文件来构造) builder.RegisterModule(new ConfigurationSettingsReader("autofac")); // 容器生成 using (var build = builder.Build()) { // 分解出注册类型 var shower = build.Resolve<ShowInfo>(); // 调用类型的方法 shower.DisplayInfo(); }
6. 参考文件文章:
依赖注入框架Autofac的简单使用
http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html
Autofac实例—(需要添加一下引用就OK)
http://download.csdn.net/detail/xyz136299110/4378346#comment
7. 个人实例代码 点这里, 欢迎下载!
浙公网安备 33010602011771号