是否可以在.NET 4中创建一个类:
例如,这个C#类不会为我编译:
public class MyClass
{
public object Item { get; set; }
public object this[string index] { get { return null; } set { } }
}
Run Code Online (Sandbox Code Playgroud)
编译器给出错误CS0102:
"MyClass"类型已包含"Item"的定义
虽然我只是明确定义Item一次.
我尝试将基于反射的后期绑定库实现到Microsoft Office.Offce COM对象的属性和方法按以下方式调用:
Type type = Type.GetTypeFromProgID("Word.Application");
object comObject = Activator.CreateInstance(type);
type.InvokeMember(<METHOD NAME>, <BINDING FLAGS>, null, comObject, new object[] { <PARAMS>});
Run Code Online (Sandbox Code Playgroud)
InvokeMember是唯一可能的方法,因为Type.GetMethod/GetProperty与COM对象不能正常工作.
可以使用InvokeMember调用方法和属性,但现在我必须解决以下问题:
office-interop包装器中的方法:
Excel.Workbooks wb = excel.Workbooks;
Excel.Workbook firstWb = wb[0];
Run Code Online (Sandbox Code Playgroud)
分别
foreach(Excel.Workbook w in excel.Workbooks)
// doSmth.
Run Code Online (Sandbox Code Playgroud)
如何通过反射调用Excel.Workbooks的this [int index]运算符?