0

当在库 a 中调用方法时,我需要在库 b 中触发一个方法。

例如,是否有可能library b附加到testEvent库 a 中的事件?

库 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.

4

1 回答 1

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(); 
 }
于 2012-07-02T18:52:29.363 回答