Инъекция параметров Unity с помощью InjectionConstructor

1

Я хотел бы добавить объект типа GraphClient в мои классы сервиса MVC во время выполнения. Этот объект имеет параметр типа Uri, который в основном является Uri текущего арендатора, на который мы хотели бы обратить внимание. Там, где я получаю зависание, это прекрасно работает для начальной загрузки, однако, когда я переключаюсь на разных арендаторов, ури сохраняется с первым зарегистрированным uri. Это имеет смысл. Однако мне интересно, есть ли способ сказать Unity, чтобы каждый раз вводить параметр этой зависимости в экземпляре?

Ниже приведена сводная версия моего кода.

var container = new UnityContainer();
container.RegisterType(typeof(GraphClient), new InjectionConstructor(RootUri));

protected static Uri RootUri
{
   get
   {
      SessionWrapper wrapper = new SessionWrapper();
      cString = wrapper.CurrentTenantUri;

      return new Uri(cString);
    }
}
Теги:
dependency-injection
unity-container

1 ответ

1
Лучший ответ

Вы можете использовать InjectionFactory, чтобы выполнить то, что вам нужно. Это будет выполняться каждый раз, когда необходимо будет создать экземпляр GraphClient.

container.RegisterType(typeof(GraphClient), 
                       new InjectionFactory(c => new GraphClient(RootUri)));
  • 0
    Yahtzee! Спасибо, Тайлер!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню