IDistributedCache通过注入调用构造函数

时间:2018-07-04 10:18:44

标签: c# caching redis

我有一个基于ASP.NET Core 2.1解决方案的redis分布式缓存项目。有一些我不了解的东西。

我有一个myClassName类,其构造函数有待注入。

public class myClassName
{
   private readonly IDistributedCache _userCache;

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

   public async Task FirstMethod(...)

   private async Task SecondMethod(...)

}

从另一个类“ myClassNameTwo”中,我必须创建一个“ 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(...)
      }
  }

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

1 个答案:

答案 0 :(得分:0)

如果使用的是.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