私は反射ベースのレイトバインドライブラリをMicrosoft Officeに実装しようとしています。 Offce COMオブジェクトの プロパティとメソッドは、次のように呼ばれています。リフレクトでこの[int index]を呼び出す
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を使用して呼び出すことができますが、今、私は次のような問題を解決する必要があります:オフィス相互運用ラッパーで
方法:どのようにそれぞれ
Excel.Workbooks wb = excel.Workbooks;
Excel.Workbook firstWb = wb[0];
foreach(Excel.Workbook w in excel.Workbooks)
// doSmth.
私はExcel.Workbooksのこの[int index]演算子をリフレクション経由で呼び出すことはできますか?
http://stackoverflow.com/questions/6202523/is-listi-an-alias-for-list-get-itemi-in-c – Rover