加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .NET 5 vNext使用参数解析依赖关系

发布时间:2020-12-15 23:26:42 所属栏目:百科 来源:网络整理
导读:我已经能够使用vNext DI解决无参数构造函数的依赖关系. 但是当我尝试为其中一个依赖项指定参数时,它会给出运行时错误: System.InvalidOperationException Unable to resolve service for type ‘System.String’ while attempting to activate ‘Namespace.
我已经能够使用vNext DI解决无参数构造函数的依赖关系.

但是当我尝试为其中一个依赖项指定参数时,它会给出运行时错误:

System.InvalidOperationException Unable to resolve service for type
‘System.String’ while attempting to activate ‘Namespace.MyService’

构造函数:

public MyService(string name)
{
    // initialize
}

用法:

private readonly IMyService _myService;
public Consumer(IMyService myService)
{
        // initialize
        _myService = myService;
}

我通过添加:

services.AddInstance(new MyService("Hello"));

它仅在我更新Consumer类构造函数参数以使用类型MyService时才有效

我最初的注册是:

services.AddTransient<IMyService,MyService>(); // Todo: configure constructor injection

我真的想使用接口而不是这个过程的具体类.我怎样才能让它发挥作用?

解决方法

它就像显式指定服务类型一样简单:

services.AddInstance<IMyService>(new MyService("Hello"));

编译器通常会推断泛型参数类型,但您始终可以显式指定泛型类型参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读