多个连接字符串,一个具有依赖注入的存储库

jer*_*ley 1 structuremap dependency-injection

现在我有一个基本的 IRepository,它接受 IConnect (包含一个字符串值)。我在获取 DI(结构图)来确定要使用哪个连接字符串时遇到问题。理论上,如果我在实体上使用属性,我可以编写一个注册表/扫描仪来确定这一点,但我想知道是否有更简单的方法来做到这一点?

现在我有这样的东西

ObjectFactory.Initialize(factory =>
{
    factory.For<IConnect>().Singleton().Use<ConnectToMarket>()
        .Ctor<string>("connectionString")
        .Is(_marketConnectionString);
    //and some other stuff
});
Run Code Online (Sandbox Code Playgroud)

有想法吗?

the*_*kip 5

您可以从不同的接口派生不同的存储库。假设您有一个IMarketRepository使用市场连接字符串构建的which。因此,所有使用的存储库marketconnectionstring都是使用该连接字符串构建的(前提是您正确注册)。

我假设您不必为多个连接字符串使用相同的存储库?

另一种解决方案可能是进行多个实现IConnectionString或可以在构造函数中指定的内容。

我必须说,这两种解决方案都不是很好。