Autofac学习教程
来源:互联网 发布:htc手机移动网络不可用 编辑:程序博客网 时间:2024/05/23 13:28
Wiki http://code.google.com/p/autofac/wiki/ComponentCreation
中文翻译 http://www.cnblogs.com/wolegequ/archive/2012/06/02/2531945.html
归纳总结:
1 注册服务
var builder=new ContainerBuilder();
(1)builder.RegisterType<ConsoleLogger>().As<ILogger>();
(2) builder.RegisterType<A>();
(3) builder.RegisterType(typeof(A));
(4) builder.Register(c=>new A(c.Resoler<B>()));
(4.1) builder.Register(c =>
new
UserSession(DateTime.Now.AddMinutes(25)));
//带复杂参数的构造(构造函数的参数不能使用简单的常量定义)
(5)builder.Registe(c=>new A(){MyB=c.ResolverOptional<B>()}); //属性注入
(6)根据参数来选择实现的对象
builder.Register<CreditCard>((c, p) => {
var accountId = p.Named<
string
>(
"accountId"
);
if
(accountId.StartsWith(
"9"
))
return
new
GoldCard(accountId);
else
return
new
StandardCard(accountId);
});
(7) 对已存在的单例进行注入
builder.RegisterInstance(MySingleton.Instance).ExternallyOwned();
builder.RegisterGeneric(
typeof
(NHibernateRepository<>))
.As(
typeof
(IRepository<>))
.InstancePerLifetimeScope();
(9)
builder.Register<X2>().As<IX>().PreserveExistingDefaults();
2 从容器中获取对象
using (var container = builder.Build())
{
(1)var zo = container.Resolve<Zoo>();
(2) var a = container.Resolve<IAnimal >(new NamedParameter("name","fqbgogo")); //带简单参数的
- Autofac学习教程
- 【.Net码农】【Autofac】AutoMapper简明教程(学习笔记)
- Autofac
- Autofac
- Autofac介绍
- Autofac介绍
- Autofac介绍
- Autofac介绍
- IOC autofac
- 依赖注入容器Autofac
- Ioc容器Autofac介绍
- Autofac简单介绍
- AutoFac文档2
- Dependency Injection with Autofac
- [Autofac]组件创建
- [Autofac]自动装配
- Autofac 基本例子
- IoC容器Autofac
- 抽屉原理2--关于抽屉的循环问题
- <C/C++函数与算法速查手册>已经第二次重印了,欢迎关注。
- Ubuntu 11.04 下安装配置 JDK 7
- const int *a, int const *a,int * const a,区别,指针数组,数组指针,声明与定义
- AIX下awk语言的内置字符串函数
- Autofac学习教程
- 让Qt应用程序移植到Android上
- List of TCP and UDP port numbers
- 【2012年腾讯俱乐部ACM赛新手组1004】XOR的用法-Poor man on the Single’s Day
- CF 109D
- Registering a Control Handler Function (Windows)
- 世间再无乔布斯
- Ios5(五)多视图pickers应用程序实现
- uva_439 - Knight Moves