-1

我试图显示SAPbobsCOM.Items使用以下代码的所有方法:

 SAPbobsCOM.Items item = (SAPbobsCOM.Items)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems);
        Type t = item.GetType();
        MethodInfo[] mi = t.GetMethods();
        Console.WriteLine("Number of methods={0}", mi.Length);
        foreach (MethodInfo m in mi)
            Console.WriteLine(m);

输出仅提供 7 种方法,并排除了包括Add(),方法在内的其他几种可用方法Update(),尽管它在编写代码时由智能感知显示。为什么会这样?

4

2 回答 2

0

您不能通过这种方式简单地反映 COM 对象。你可以这样做:

1) 使用 TLI.DLL(类型库信息)或 2) 反映 interop.SAPbobsCOM.dll,这是一个 .net dll。

于 2013-04-16T08:33:50.947 回答
0

我对 SAP 界面不熟悉,但这里有几个可能的原因:

  1. Type.GetMethods()仅返回公共方法。看起来您正在评估 COM 对象,因此不太可能使用其他类型的方法。
  2. 对于 COM 对象,方法可以从元数据中省略或包含在不同的 COM 接口中。
  3. 其他方法可能是其他类添加的扩展方法。再一次,如果这是一个 COM 对象,则不太可能。
于 2013-01-01T13:04:01.067 回答