Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用反射获取SAP di api对象的所有方法_C#_Visual Studio 2010_Reflection_Sap - Fatal编程技术网

C# 无法使用反射获取SAP di api对象的所有方法

C# 无法使用反射获取SAP di api对象的所有方法,c#,visual-studio-2010,reflection,sap,C#,Visual Studio 2010,Reflection,Sap,我试图使用以下代码显示sapbobbscom.Items的所有方法: SAPbobsCOM.Items item = (SAPbobsCOM.Items)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems); Type t = item.GetType(); MethodInfo[] mi = t.GetMethods(); Console.WriteLine("Number of

我试图使用以下代码显示
sapbobbscom.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()
方法,尽管编写代码时intellisense会显示这些方法。为什么会这样?

我不熟悉SAP界面,但以下是一些可能的原因:

  • 仅返回公共方法。看起来您正在评估COM对象,因此不太可能使用其他类型的方法
  • 对于COM对象,方法可以从元数据中省略,也可以包含在不同的COM接口中
  • 其他类可以添加其他方法。同样,如果这是COM对象,则不太可能

  • 您不能通过这种方式简单地反映COM对象。您可以通过以下方式完成:

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