首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Autofac学习课程

2012-11-26 
Autofac学习教程Wikihttp://code.google.com/p/autofac/wiki/ComponentCreation中文翻译http://www.cnblog

Autofac学习教程

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<CreditCard>((c, p) => {    var accountId = p.Named<string>("accountId");    if(accountId.StartsWith("9"))    returnnew GoldCard(accountId);    else    returnnew StandardCard(accountId);});

(7) 对已存在的单例进行注入

builder.RegisterInstance(MySingleton.Instance).ExternallyOwned();(8)builder.RegisterGeneric(typeof(NHibernateRepository<>))   .As(typeof(IRepository<>))   .InstancePerLifetimeScope();(9)builder.Register<X2>().As<IX>().PreserveExistingDefaults();  //使用已存在的注册(10)builder.RegisterModule(new ConfigurationSettingsReader("autofac"));配置文件注册

2 从容器中获取对象

using (var container = builder.Build())

{

(1)var zo = container.Resolve<Zoo>();

  (2) var a = container.Resolve<IAnimal >(new NamedParameter("name","fqbgogo"));   //带简单参数的