【发布时间】:2015-08-27 04:33:32
【问题描述】:
我有两个项目,一个是 Winform 应用程序,另一个是 类库。我在Winform中添加了对类库的引用,并调用了类库的一个方法。现在我想从类库中调用 winform 应用程序中的不同方法,但我无法将 winform 的引用添加到类库中。
在代码中:-
public partial class Form1 : Form
{
private void btn_Click(object sender, EventArgs e)
{
A obj = new A();
obj.foo();
}
public string Test(par)
{
//to_stuff
}
}
在类库中
class A
{
public void foo()
{
//Do_stuff
//...
Test(Par);
//Do...
}
}
【问题讨论】:
-
你需要重新设计它。如果你能提供一个令人信服的例子来说明你为什么需要这样做,也许我们可以建议一种不同的方法来处理它。就目前而言,你的问题太模糊了。
-
唯一的办法就是创建一个契约组件,在里面定义一个接口,通过表单实现这个接口,并将这个接口的引用传递给库。您当前的两个程序集都可以引用此合同程序集。
-
是的。您正在尝试创建循环引用(以及一般的循环依赖项),这是一个糟糕的主意。不要这样做。为什么会你需要从你的类库中的 winforms 项目中调用任何东西?
-
@Verarind,这是一种方式,但不是唯一的方式,例如看我的回答。
-
@DavidArno:是的,你是对的。您的解决方案也是一种可能的方式。但我们都犯了同样的错误。标题说他想调用
Test(..)而不添加对A 类的引用。希望他只是尽量避免引用库。类引用可能没问题。
标签: c# winforms methods class-library