C# 使用InjectionConstructor的统一参数注入
我想在运行时将GraphClient类型的对象注入我的MVC服务类。这个对象有一个Uri类型的参数,它基本上就是我们希望查看的当前租户的Uri。我感到困惑的是,这对于初始加载非常有效,但是当我切换到不同的租户时,uri会与注册的第一个uri保持一致。这是有道理的。然而,我想知道,有没有一种方法可以告诉Unity在每次实例化时都进行这个依赖项的参数注入 下面是我的代码的精简版本C# 使用InjectionConstructor的统一参数注入,c#,dependency-injection,unity-container,C#,Dependency Injection,Unity Container,我想在运行时将GraphClient类型的对象注入我的MVC服务类。这个对象有一个Uri类型的参数,它基本上就是我们希望查看的当前租户的Uri。我感到困惑的是,这对于初始加载非常有效,但是当我切换到不同的租户时,uri会与注册的第一个uri保持一致。这是有道理的。然而,我想知道,有没有一种方法可以告诉Unity在每次实例化时都进行这个依赖项的参数注入 下面是我的代码的精简版本 var container = new UnityContainer(); container.RegisterType
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);
}
}
你可以使用一个工具来完成你所追求的目标。每次需要实例化GraphClient时,都会执行此操作
container.RegisterType(typeof(GraphClient),
new InjectionFactory(c => new GraphClient(RootUri)));
耶!谢谢泰勒!