相关疑难解决方法(0)

具有索引器和名为"Item"的属性的类

是否可以在.NET 4中创建一个类:

  1. 一个索引器,
  2. 一个名为"Item"的属性?

例如,这个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一次.

.net c# indexer

28
推荐指数
2
解决办法
1万
查看次数

通过反射调用此[int index]

我尝试将基于反射的后期绑定库实现到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]运算符?

c# reflection office-interop

11
推荐指数
1
解决办法
3240
查看次数

标签 统计

c# ×2

.net ×1

indexer ×1

office-interop ×1

reflection ×1