我有一个使用基于asp.net core 2.1解决方案的分布式缓存的项目。有件事我不明白。
我有一个类redis和一个要注入的构造函数。

public class myClassName
{
   private readonly IDistributedCache _userCache;

   public  myClassName(IDistributedCache distributedCache) => _userCache
    = distributedCache;

   public async Task FirstMethod(...)

   private async Task SecondMethod(...)

}

从另一个类“myclassname2”中,我必须创建一个“myclassname”实例并访问一些方法。
所以我有:
   Public class myClassNameTwo : Hub
   {
      private readonly AssetsBroadcaster _broadcaster;

      public myClassNameTwo(AssetsBroadcaster broadcaster)
      {
        _broadcaster = broadcaster;
      }

      public async Task DoSomething(...)
      {
        myClassName hello = new myClassName(???)

        await hello.FirstMethod(...)
      }
  }

如何检索要传递给myClassName构造函数的IDistributedCache服务实例?

最佳答案

如果您使用的是.NET Core,使用依赖性强制令,则可以在启动时注册MyClassName类的实例。
像,

public class myClassName{

private readonly IDistributedCache _userCache;

public  myClassName(IDistributedCache distributedCache) {
 _userCache = distributedCache;
}

public async Task FirstMethod(...)

private async Task SecondMethod(...)

}

对于第二个类,它可以如下所示
   Public class myClassNameTwo : Hub
   {
      private readonly AssetsBroadcaster _broadcaster;
      private readonly myClassName _myClassName;

      public myClassNameTwo(AssetsBroadcaster broadcaster,
                myClassName myClassName)
      {
        _broadcaster = broadcaster;
        _myClassName = myClassName;
      }

      public async Task DoSomething(...)
      {
        await _myClassName.FirstMethod(...)
      }
  }

myclassname的依赖项将被自动注入。所以你不需要单独注射。
For more details

08-27 22:33