2017-09-26 92 views
0

接口我想註冊一個基本接口IServiceTinyIocTinyIoc註冊並具有多種類型

目前我已經從Iservice

例如AuthenticationServiceRestService繼承多個類都從基類Service繼承其器具Iservice

我這樣做的方式就是這樣,分別註冊每個服務。

container.Register<IAuthenticationService, AuthenticationService>(); 
container.Register<IRestService, RestService>(); 

,因爲它們都來自Service : IService繼承是有一個電話註冊的方式都還是必須要seperately註冊每個服務?

回答

0

還有爲Register方法接受一個Func,你可以用它來確定你想返回的具體類型超載:

var decision = true; 
container.Register<IService>((c, npo) => 
{ 
    // Change it to whatever logic you need to decide which service should be returned 
    if (decision) 
     return new AuthenticationService(); 
    else 
     return new RestService(); 
}); 

var instance = container.Resolve<IService>();