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
李