C# 条件绑定自动传真机

C# 条件绑定自动传真机,c#,dependency-injection,autofac,C#,Dependency Injection,Autofac,我有一个名为wrapper的包装器类,它的接口是IWrapper,当我的包装器类在我的一个控制器中创建时,我希望它使用一种输入参数创建包装器类,或者使用一些其他输入参数创建包装器类 我的代码外观如下: public Wrapper(string uri) { base.BaseAddress = new Uri(uri); } 我想要实现的是,我的包装器类中的Uri参数被注入不同的值,这取决于它将从哪个控制器注入 我正在使用AutoFac 2与WebApi集成。我通过如下方式解决了此问

我有一个名为wrapper的包装器类,它的接口是IWrapper,当我的包装器类在我的一个控制器中创建时,我希望它使用一种输入参数创建包装器类,或者使用一些其他输入参数创建包装器类

我的代码外观如下:

public Wrapper(string uri)
{
    base.BaseAddress = new Uri(uri);
}
我想要实现的是,我的包装器类中的Uri参数被注入不同的值,这取决于它将从哪个控制器注入


我正在使用AutoFac 2与WebApi集成。

我通过如下方式解决了此问题:

builder.RegisterType<Wrapper>().As<IWrapper>().WithParameter(new NamedParameter("uri", "http://test.com")).InstancePerApiRequest();
builder.Register(x => new RestClientWrapper("https://auth.test.com/")).Named<IWrapper>("auth");
builder.Register(x => new AuthController(x.ResolveNamed<IRestClientWrapper>("auth")));
builder.RegisterType().As().WithParameter(新名称参数(“uri”)http://test.com)),InstancePerApiRequest();
Register(x=>newrestclientwrapper(“https://auth.test.com/),命名为(“授权”);
注册(x=>newauthcontroller(x.ResolveNamed(“auth”));
您可以在此处阅读更多内容: