我一直在试图找出这个问题,我与依赖关系。我需要从A级到B级的参考,还有B级到A级。这甚至有可能吗? A持有宣布类型,我需要在B中使用,所以我需要访问A到B和B到A.在达到方法时避免循环依赖
有没有办法解决这个问题或任何想法? A中的类型不能移动,B中的方法也不能移动。 (否则不会有任何问题)。
GUI - 厂 - XMLSerialize来,其中厂是A和XML是乙
//问候
我一直在试图找出这个问题,我与依赖关系。我需要从A级到B级的参考,还有B级到A级。这甚至有可能吗? A持有宣布类型,我需要在B中使用,所以我需要访问A到B和B到A.在达到方法时避免循环依赖
有没有办法解决这个问题或任何想法? A中的类型不能移动,B中的方法也不能移动。 (否则不会有任何问题)。
GUI - 厂 - XMLSerialize来,其中厂是A和XML是乙
//问候
这不仅听起来可能,这听起来很正常。例如,Person
课程可能会提及Department
课程,而Department
可能提及Person
。你会发现这个地方的例子。
只要尽量避免在Department
中制作Person
实例变量(属性)。您希望尽可能缩短引用时间以避免内存泄漏。
该代码具有循环引用,并编译就好:
public class A {
B b;
}
public class B {
A a;
}
所以我不知道到底是什么原因造成你的问题。也许你试图把A和B分别作为不同的程序集(又名不同的dll)?不幸的是,这是不可能的。
如果在那种情况的时候,那么你可以做的最好的是这样的:
大会1:
public interface IA { ... }
public interface IB { ... }
大会2(取决于1):
public class A {
IB b;
}
组件3(取决于2):
public class B {
IA a;
}
大会4(取决于1-3):
B b = new B();
A a = new A();
b.a = a;
a.b = b;
是的,我将不得不这样做。非常感谢您的帮助! – user1501127 2013-03-22 07:43:57
你是什么意思的 '持有声明类型' 呢?当然可以用方法/属性/域相互引用来声明两个类。 – MiMo 2013-03-21 21:26:16