0

我正在尝试IServiceTinyIoc

目前我有多个类继承自Iservice

例如AuthenticationServiceRestService两者都继承自Service实现的基类Iservice

我这样做的方式是这样的,分别注册每个服务。

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

因为他们都继承自有 Service : IService没有办法在一个电话中注册两者,还是我必须单独注册每个服务?

4

1 回答 1

0

Register接受 a的方法有一个重载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>();
于 2017-09-26T17:41:01.290 回答