我做了一个叫做“ A”的班级,并引用了“ B”这个班级 同时,我创建了一个名为“ B”的类,并引用了“ A”类
我做了如下两节课
class A
{
private readonly B _b;
A(B b)
{
_b = b;
}
}
class B
{
private readonly A _a;
B(A a)
{
_a = a;
}
}
但是NInjection不允许我做这种模式。
所以,我想知道为什么不允许交叉引用。
谢谢。
答案 0 :(得分:1)
您可以使用属性注入来避免循环依赖:
class A
{
public B _b {get; set;}
public void OtherMethod() {}
}
class B
{
B(A a)
{
a._b = this;
}
}
答案 1 :(得分:0)
@ Gauravsa提出的解决方案的问题如下:如果我有类B的一个实例,并且想知道哪个类A的实例已引用了它,那么我无法找到答案。这就是为什么它被称为“交叉引用”而不是“引用”的原因。