我正在尝试使用 C# 从我的程序中打开 CorelDRAW。到目前为止,我已经能够通过引用适当的 com 库并调用
CorelDRAW.Application draw = new CorelDRAW.Application();
draw.Visible = true;
但是,我希望我的程序可以与支持互操作的任何版本的 CorelDRAW 一起使用。我正在尝试使用反射在运行时加载互操作库,其中可以为正确的版本选择特定的 dll。从环顾四周,我尝试了以下方法。
string path = "Interop.CorelDRAW.dll";
Assembly u = Assembly.LoadFile(path);
Type testType = u.GetType("CorelDRAW.Application");
if (testType != null)
{
object draw = u.CreateInstance("CorelDRAW.Application");
FieldInfo fi = testType.GetField("Visible");
fi.SetValue(draw, true);
}
该程序在失败时u.CreateInstance...
失败,因为CorelDRAW.Application
它是一个接口,而不是一个类。当我浏览 Interop.CorelDRAW 作为资源时,我也尝试替换CorelDRAW.Application
为可用的,但随后失败。CorelDRAW.ApplicationClass
u.getType...
我怎样才能让它工作?谢谢!