AutoFac 一个接口注册多个类
注册:builder.Register(c => new FKContext()).Named<IFKContext>("EF").As<IFKContext>().InstancePerHttpRequest();
builder.Register(c => new FKCachingContext()).Named<IFKContext>("EFCaching").As<IFKContext>().InstancePerHttpRequest();
获取:
private ILifetimeScope container = ((AutofacDependencyResolver)DependencyResolver.Current).RequestLifetimeScope;
FKContext = container.ResolveNamed<IFKContext>("EF");
FKCachingContext = container.ResolveNamed<IFKContext>("EFCaching");
container 为什么是这么获取的,请参考Global.asax中的
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
这里把container 放入了.NET的容器里,那么在另一个地方一定有办法取出来 autofac container ResolveNamed
补充:.NET技术 , 分析与设计