2017-09-26 112 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>(); 
相关问题