【发布时间】:2009-11-06 05:08:11
【问题描述】:
我是 IOC 容器的新手,我正在开始使用 NInject。
如果您希望您的构造函数具有不是服务且不需要由 IOC 容器实例化的参数,您会怎么做?
例如:
public class Person
{
private readonly string _name;
private readonly IPersonRepository _repository;
public Person(string name, IPersonRepository repository)
{
_name = name;
_repository = repository;
}
......
}
假设 name 是 Person 类的要求,因此,为了确保 Person 始终有名称,我们需要将其传递给构造函数。
我们如何使用 NInject 获得 Person 的实例?名称需要由应用程序的任何部分创建一个新的人来传递,而 IOC 容器需要在 IPersonRepository 中传递。
我知道可以使用属性来注入名称或存储库,但这不是一个干净的解决方案 - 我们正在失去一些编程语言的语义能力。
【问题讨论】:
标签: constructor ninject code-injection