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);
這可能嗎?