【发布时间】:2011-06-06 06:26:31
【问题描述】:
我有一组像这样设置的基础存储库...
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} 没有可用于创建的构造函数 实现的一个实例 输入。
为什么这不起作用?
【问题讨论】:
-
你能提供 Repository 的实现吗?尤其是构造函数。
标签: ninject