Я хотел бы добавить объект типа 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);
}
}
Вы можете использовать InjectionFactory, чтобы выполнить то, что вам нужно. Это будет выполняться каждый раз, когда необходимо будет создать экземпляр GraphClient.
container.RegisterType(typeof(GraphClient),
new InjectionFactory(c => new GraphClient(RootUri)));