我有一个接口,称为IRepository,有两种实现方式:StructureMap配置帮助
SqlRepository
SqlDualWriterRepository
第一个实现是一个普通的SQL持久性实现了对象它的类型为T.它依赖于SqlConnectionStringProvider的一个实例(它提供了一个连接字符串,顾名思义nd将构造函数参数作为连接字符串名称)。
二是内部使用2 SQLRepository依赖另一种实现方式:
public class SqlDualWriterRepository<T> : IRepository<T>
{
private readonly IRepository<T> _primaryRepository;
private readonly IRepository<T> _secondaryRepository;
public SqlDualWriterRepository(
IRepository<T> primaryRepository,
IRepository<T> secondaryRepository)
{
_primaryRepository = primaryRepository;
_secondaryRepository = secondaryRepository;
}
}
我想实现的是配置StructureMap,这样要求的IRepository实例时,它会:
- 将IRepository解析为SqlDualWriterRepository的实例
- 解析两个内库键入SqlRepository
- 在步骤2中实例化两个SqlRepository对象,我需要解决以不同的方式SqlConnectionStringProvider(在构造函数中提供不同的字符串参数)
我不知道如何做到这一点。 有没有办法做到这一点与属性或其他类型的配置?
我正在使用StructureMap 2.6.2.0。