我有一个带有构造函数的 C# 类。构造函数当前需要一个logger<myObject>. 代码如下所示:
public class MyClass
{
private ILogger<MyObject> _logger;
public MyClass(ILogger<MyOjbect> logger)
{
_logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望 ILogger 采用泛型,这样我就可以在任何我想要的地方实例化 MyClass 的实例,并传入ILogger<T>我想要的任何类型,但是,当我更改<MyObject>为时,<T>我得到:
找不到类型或命名空间“T”。您是否缺少指令或程序集引用?
意思是,我希望代码如下所示:
public class MyClass
{
private ILogger<T> _logger;
public MyClass(ILogger<T> logger)
{
_logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
并创建它:
var myClass = new MyClass(ILogger<Something> logger);
Run Code Online (Sandbox Code Playgroud)
你需要这样做
public class MyClass<T>
--------------------^^^
{
private ILogger<T> _logger;
public MyClass(ILogger<T> logger)
{
_logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)