C# 类中构造函数中的泛型?

Sla*_*s12 0 .net c#

我有一个带有构造函数的 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)

pm1*_*100 6

你需要这样做

public class MyClass<T>
--------------------^^^
{
   private ILogger<T> _logger;

   public MyClass(ILogger<T> logger)
   {
     _logger = logger; 
   }
}
Run Code Online (Sandbox Code Playgroud)