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