当在库a中调用方法时,我需要在库b中触发一个方法。
例如,library b
是否可能以某种方式附加到库a中的事件testEvent
?
库a - 不能引用库b(因为循环依赖)
public event testEvent = null;
pubic class alpha{
public void main(){//application entry point
}
}
图书馆b - 引用library a
public class beta{
public void hello(){
}
}
如果做不到这一点,我想我必须创建第三个库library c
,它引用library b
,并由library a
引用。
答案 0 :(得分:1)
最简单的解决方案之一是在a中有一个接口定义,在b中有一个实现。然后,在a中,使用反射解析对接口实例的引用:
B.DLL:
public class beta : ibeta {
public void hello() {
}
}
A.DLL:
public interface ibeta {
void hello();
}
..
public static void Main()
{
// resolve type by its fully qualified name
ibeta b = (ibeta)Activator.CreateInstance( Type.GetType( "beta, B" ) );
b.hello();
}