【问题标题】:Ninject configuration - genericsNinject 配置 - 泛型
【发布时间】: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


【解决方案1】:

有点晚了,但您需要将 IRepository 绑定到 SomeObjectRepository。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多