这是我想用Structuremap完成的。
在我们请求的每个请求中,我们的客户端中使用的数据库连接字符串和Web服务URL将根据某些业务逻辑而有所不同。目前,我们的sql和Web服务客户端实现在其构造函数中接收配置。
我想使用配置文件,但却发现每次请求都无法使用它们。
在我们的团队中,我们正就两个解决方案进行辩论:
1-将配置工厂传递到可以解析要使用的配置的注册表中
当容器需要实例化时。
2-为每个不同的配置实例化容器,并根据业务逻辑决定使用哪个容器。
1-你看到其他问题了吗?
2-更好的主意吗?
3-您会选择哪一个?
谢谢
修改
并且似乎很难从工厂内获得当前的请求上下文。
我不是说HttpContext,我的意思是请求数据。对于这个应用程序,它是一个wcf请求对象。
答案 0 :(得分:0)
似乎很难从工厂内获得当前的请求上下文。
不确定为什么会这样。以下不会这样做吗?
ObjectFactory.Configure(config => {
config.For<HttpContextBase>()
.Use(() => { return new HttpContextWrapper(HttpContext.Current); });
config.For<Service>().Use<Service>();
});
var service = ObjectFactory.GetInstance<Service>();
public class ConfigurationFactory
{
public ConfigurationFactory(System.Web.HttpContextBase context)
{
}
}
public class Service
{
public Service(ConfigurationFactory Configuration)
{
}
}