我试图找出使用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强制转换为我的类型吗?
谢谢。
最佳答案
如果使用的是.NET 4.0,则可以使用dynamic
代替object
并像调用成员一样调用成员。然后将在运行时检查它,如果名称正确,则执行它。
//Get the excel object
var excel = Type.GetTypeFromProgID("Excel.Application");
//Create instance of excel
dynamic excelObject = Activator.CreateInstance(excel);
excelObject.Visible = true;
关于c# - C#Com OLE服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7527114/