添加此项目将导致循环依赖

Gib*_*boK 4 .net c# wpf .net-assembly

我有一个由两个程序集组成的WPF应用程序.

程序集A是一个wpf应用程序.

程序集B是一个3D应用程序,主要由A使用的公共API.

程序集A引用程序集B.

现在当一个事件触发程序集时,BI需要在静态类应用程序中调用程序集A中的方法.

如果我尝试在BI中添加对程序集A的引用,则会收到错误:

添加此项目将导致循环依赖

你对如何解决它有什么想法吗?

具体来说,我想知道:

  • 如何打电话给App.myMethod()A assembly B
  • 为了解耦类,我可以在程序集B上触发一个通用事件并在程序集A上捕获它吗?
  • 欢迎任何其他想法.

D S*_*ley 9

如何App.myMethod从程序集B中调用A?

如果A取决于B,你不能.

如果事件是从B中的某个类触发的,那么您应该从A中的某个类订阅该事件:

代码A:

var classB = new ClassB();  // presumably in your code in A somewhere
classB.MyEvent += new EventHandler(this.HandleEventFromB);


public void HandleEventFromB(object sneder, EventArgs args)
{
    ClassA.StaticMethod();
}
Run Code Online (Sandbox Code Playgroud)

这样B不依赖于A.

您可能需要在B中"冒泡"事件到一些公开暴露的事件,以便从A订阅它.