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) (7) 对已存在的单例进行注入 2 从容器中获取对象 using (var container = builder.Build()) { (1)var zo = container.Resolve<Zoo>(); (2) var a = container.Resolve<IAnimal >(new NamedParameter("name","fqbgogo")); //带简单参数的
builder.Register<CreditCard>((c, p) => {
var accountId = p.Named<
string
>(
"accountId"
);
if
(accountId.StartsWith(
"9"
))
return
new
GoldCard(accountId);
else
return
new
StandardCard(accountId);
});
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"));配置文件注册