IDistributedCache вызывает конструктор с инъекцией - PullRequest
0 голосов
/ 04 июля 2018

У меня есть проект, использующий redis распределенный кеш, основанный на решении asp.net core 2.1. Есть кое-что, чего я не понял.

У меня есть класс 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 голосов
/ 04 июля 2018

Если вы используете .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 будут автоматически добавлены. Так что вам не нужно вводить его отдельно.

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...