【发布时间】:2011-11-23 12:51:29
【问题描述】:
我正在尝试找出使用 C# .NET 与 OLE 服务器交互的最佳方式
我发现了一些可以与 COM+ 交互的代码,这些代码似乎适用于 OLE 服务器,但我想知道是否有更优雅或更简单的方法?
我要求它是后期绑定的。
代码(从网上其他地方偷来的)
// Code start
Type excel;
object[] parameter = new object[1];
object excelObject;
try
{
//Get the excel object
excel = Type.GetTypeFromProgID("Excel.Application");
//Create instance of excel
excelObject = Activator.CreateInstance(excel);
//Set the parameter whic u want to set
parameter[0] = true;
//Set the Visible property
excel.InvokeMember("Visible", BindingFlags.SetProperty, null, excelObject, parameter);
显然,在我的情况下,我将我的 ole 服务器的名称放在 Excel.Application 所在的位置,但我在 EARLY 绑定中看到了一些情况,您可以直接从对象调用函数而无需通过“InvokeMember”
这可能吗?我可以使用 Type 将对象转换为我的类型吗?
谢谢。
【问题讨论】:
-
它被称为 COM,而不是 OLE。 OLE 已经死去并被埋葬了一段时间。这将帮助您在“添加参考”对话框中找到该选项卡。
-
嗯,显然我要引用的是 OLE 服务器,它肯定是一个 .exe 的 ole 应用程序并且是自我注册的......我知道 COM+ 是由 OLE 诞生的,但这是一个旧服务器。
-
然后使用“添加引用”对话框中的 OLE 选项卡 :)