上下文
:
我正在使用一些旧的机器人软件,如果COM对象实现了一些预定义的接口,它就能够从COM对象中获取信息。由于这个旧软件在Windows 2000上运行,我想使用DCOM来避免为Windows 2000编译某些东西。(我知道必须调用的程序可能需要工作,或者至少在Windows 2000计算机上存在)
另一台计算机将通过DCOM调用,并将使用配置的一组步骤处理图像。我想要一个GUI来显示传入和传出的图像以及更改其执行步骤的能力。
问题
图像处理器需要实现两个接口,但接口1包含
Load
功能,以及
Form
,但两者都需要保持可访问性,因此我不认为我可以使用
new
关键字。因此,下面的代码将不起作用。
public class ServerForm : Form, Interface1, Interface2 { }
我可以这样拆分它们:
public class ServerForm : Form { }
public class MyImageProcessor : Interface1, Interface2 { }
但我仍然需要从MyImageProcessor类访问表单。我尝试通过构造函数将表单传递给MyImageProcessor,如下所示:
static class Program {
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ServerForm sv = new ServerForm();
MyImageProcessor mip = new MyImageProcessor(sv);
Application.Run(sv);
}
}
但当我使用
regasm CSharpServer.exe /regfile:CSharpServer.reg
,要检查添加到注册表的键,只显示ServerForm,而不显示ImageProcessor。
我如何解决这个问题?