注册类型由基本类型和解决与Autofac
问题描述:
我有以下设置:注册类型由基本类型和解决与Autofac
public interface IServiceBase {}
public interface IService1: IServiceBase {}
public interface IService2: IServiceBase {}
// ... Snip lots of lines
public interface IService999: IServiceBase {}
public interface IConnection { T GetService<T>() where T: IServiceBase; }
IConnection
与Autofac注册。调用GetService()
就会动态实现给定的接口并返回一个实例。
现在我想为所有IServiceBase
衍生类型进行某种通用注册。我不想手动注册每个IServiceX
,我不想进行程序集扫描(尽管我猜这是一个选项)。
在未真正合法的代码,这就是我想要的:
ContainerBuilder.Register<IServiceBase>(x=> x.Resolve<IConnection>().GetService);
这可能吗?
答
看起来像我需要的IRegistrationSource
Autofac的功能。