我尝试为 Microsoft Office 实现一个基于反射的后期绑定库。Office COM 对象的属性和方法调用方式如下:
Type type = Type.GetTypeFromProgID("Word.Application");
object comObject = Activator.CreateInstance(type);
type.InvokeMember(<METHOD NAME>, <BINDING FLAGS>, null, comObject, new object[] { <PARAMS>});
InvokeMember 是唯一可能的方法,因为 Type.GetMethod / GetProperty 无法与 COM 对象一起工作。
可以使用 InvokeMember 调用方法和属性,但现在我必须解决以下问题:
office-interop 包装器中的方法:
Excel.Workbooks wb = excel.Workbooks;
Excel.Workbook firstWb = wb[0];
分别
foreach(Excel.Workbook w in excel.Workbooks)
// doSmth.
如何通过反射调用 Excel.Workbooks 的 this[int index] 运算符?