下面的代码几乎总结了我想要实现的目标。
我们有一个包含许多不同项目的解决方案,但是我们需要能够从未引用的项目中调用项目中的方法(会导致循环引用)。
我已经发布了以前的问题,下面的代码几乎就是我使用接口提出的。我仍然不知道如何调用驻留在未引用的不同项目中的方法。
我无法创建接口的实例,它必须是一个类。但是如何创建未引用的类的实例。我不想为此使用反射。
代码是 C# 2.0
任何帮助表示赞赏。
我需要在“GeneralMethod”(Class Raise)中放置什么代码才能在“Listen”类中执行“Update”方法?
// Link Project
namespace Stack.Link
{
public class Interface
{
public interface Update
{
void Update();
}
}
}
// Project A
// References Link only
namespace Stack.ProjA
{
public class Raise
{
public void GeneralMethod()
{
// I want to place code in here to be able to execute
// "Update" method in ProjB.
// Keep in mind that ProjA and ProjB only reference
// Link Project
}
}
}
// Project B
// References Link only
namespace Stack.ProjB
{
public class Listen : Stack.Link.Interface.Update
{
public void Update()
{
// Do something here that is executed from ProjA
Console.Write("Executed Method in ProjB");
}
}
}
我可能应该澄清需要这样做的动机。也许有更好的方法......
我们有一个baseform,所有其他项目都可以从中引用。作为示例,我们在加载项目时(从基础表单)将包含各种设置的对象传递给项目。
例如,如果设置对象有一些变量更改(设置对象填充在 baseform 中),我们希望加载的项目侦听此更改并获取新的设置对象。
因为 baseform 引用了所有其他项目,我们需要让项目“监听”baseform 中的事件。
清如泥:-)