我正在尝试在TinyIoc
IService
目前,我有多个从Iservice
例如AuthenticationService
和RestService
都从实现Iservice
Service
继承我这样做的方式就是这样,单独注册每个服务。
container.Register<IAuthenticationService, AuthenticationService>();
container.Register<IRestService, RestService>();
由于它们都从 Service : IService
继承,有没有一种方法可以在一个呼叫中注册,还是我必须单独注册每个服务?
接受Func
的Register
方法有一个过载,您可以用来确定要返回的混凝土类型:
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>();