【发布时间】:2010-05-14 16:22:49
【问题描述】:
如果我有接口:
public interface IRepository<T>
还有一个抽象类:
public abstract class LinqToSqlRepository<T, TContext> : IRepository<T>
where T : class
where TContext : DataContext
还有一大堆 IRepository / LinqToSqlRepository 的实现(例如 AccountRepository、ContactRepository 等),使用 StructureMap (2.5.3) 将它们全部连接起来的最佳方法是什么?
例如,我希望这段代码通过:
[Test]
public void ShouldWireUpAccountRepositories
{
var accountRepo = ObjectFactory.GetInstance<IRepository<Account>>();
Assert.IsInstanceOf<AccountRepository>(accountRepo);
}
没有明确写这个:
ObjectFactory.Configure(x => x.ForRequestedType<IRepository<Account>>()
.TheDefaultIsConcreteType<AccountRepository>());
过去,我们总是在每个存储库上创建一个从通用存储库继承的特定接口,并使用默认扫描程序自动连接所有这些实例,但我希望能够专门要求一个IRepository<Account>,而不用额外的接口/配置使项目混乱。
【问题讨论】:
标签: c# .net structuremap