2014-08-29 122 views
1

我有以下設置:註冊類型由基本類型和解決與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); 

這可能嗎?

回答

0

看起來像我需要的IRegistrationSource Autofac的功能。