【问题标题】:TinyIoc register and interface with multiple typesTinyIoc 寄存器和多种类型的接口
【发布时间】:2018-03-08 00:43:31
【问题描述】:

我正在尝试在TinyIoc 中注册一个基本接口IService

目前我有多个继承自Iservice的类

例如AuthenticationServiceRestService都继承自基类Service,它实现了Iservice

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

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

由于它们都继承自 Service : IService,有没有办法在一次调用中同时注册两者,还是我必须分别注册每个服务?

【问题讨论】:

    标签: c# nancy tinyioc


    【解决方案1】:

    接受FuncRegister 方法有一个重载,您可以使用它来确定要返回的具体类型:

    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>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-09
      • 2020-08-10
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多