注册类型由基本类型和解决与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的功能。