我有一组基本存储库,设置如下......
Bind<IRepository<SomeObject>>().To<SomeObjectRepository>().WithConstructorArgument("connection", connection);
Bind<IRepository<SomeOtherObject>>().To<SomeOtherObjectRepository>().WithConstructorArgument("connection", connection);
//and so on
这些存储库很简单 - 全班同样如此。
public class SomeObjectRepository : Repository<SomeObject>
{
public SomeObjectRepository (string connection) : base(connection)
{
}
}
所以我想,嘿,这有点愚蠢,所以我创建了一个通用的基础知识库,用这个替换了所有这些绑定。
Bind(typeof(IRepository<>)).To(typeof(Repository<>)).WithConstructorArgument("connection", connection);
当然打破了并且遇到了错误
激活错误 IRepository {SomeObject}使用绑定 从IRepository {T}到Repository {T} 没有可用于创建的构造函数 实现的一个实例 类型。
为什么这不起作用?
答案 0 :(得分:0)
稍晚但您需要将IRepository绑定到SomeObjectRepository。