C# 从未引用的库附加事件

C# 从未引用的库附加事件,c#,circular-dependency,C#,Circular Dependency,当在库a中调用一个方法时,我需要在库b中启动一个方法 例如,library b是否可能附加到库a中的事件testEvent 库a-无法引用库b(因为循环依赖关系) 库b-参考了库a public class beta{ public void hello(){ } } 如果做不到这一点,我想我必须创建第三个库,库c,它引用了库b,并被库a引用最简单的解决方案之一是在a中定义接口,在b中实现。然后,在中,使用反射解析对接口实例的引用: B.dll: public class beta

当在库a中调用一个方法时,我需要在库b中启动一个方法

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

库a-无法引用库b(因为循环依赖关系)

库b-参考了
库a

public class beta{
  public void hello(){
  }
}

如果做不到这一点,我想我必须创建第三个库,
库c
,它引用了
库b
,并被
库a
引用最简单的解决方案之一是在a中定义接口,在b中实现。然后,在中,使用反射解析对接口实例的引用:

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(); 
 }

你们能在某处初始化beta并引用alpha吗?你们能在库A中创建接口并在库B中使用它们吗?你们能使用DI容器并将beta初始化为模块来解析alpha并订阅testEvent吗?或者从alpha解析beta(通过接口)并调用hello
 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(); 
 }