Olu*_*emi 3 c# asp.net dependency-injection visual-studio-2015 asp.net-core
我已经能够使用vNext DI解决无参数构造函数的依赖关系.
但是当我尝试为其中一个依赖项指定参数时,它会给出运行时错误:
System.InvalidOperationException尝试激活"Namespace.MyService"时无法解析类型"System.String"的服务
构造函数:
public MyService(string name)
{
// initialize
}
Run Code Online (Sandbox Code Playgroud)
用法:
private readonly IMyService _myService;
public Consumer(IMyService myService)
{
// initialize
_myService = myService;
}
Run Code Online (Sandbox Code Playgroud)
我通过添加:
services.AddInstance(new MyService("Hello"));
Run Code Online (Sandbox Code Playgroud)
它仅在我更新Consumer类构造函数参数以使用类型MyService时才有效
我最初的注册是:
services.AddTransient<IMyService, MyService>(); // Todo: configure constructor injection
Run Code Online (Sandbox Code Playgroud)
我真的想使用接口而不是这个过程的具体类.我怎样才能让它发挥作用?
它就像显式指定服务类型一样简单:
services.AddInstance<IMyService>(new MyService("Hello"));
Run Code Online (Sandbox Code Playgroud)
编译器通常会推断泛型参数类型,但您始终可以显式指定泛型类型参数.
| 归档时间: |
|
| 查看次数: |
3081 次 |
| 最近记录: |