Type.InvokeMember - DISP_E_MEMBERNOTFOUND
Type.InvokeMember - DISP_E_MEMBERNOTFOUND
Type.InvokeMember 失败并出现错误找不到成员 DISP_E_MEMBERNOTFOUND 尽管该成员肯定在那里。
VB 脚本编写者熟悉的 Microsoft Scripting Runtime
有一个词典 class 但我无法 运行 一个简单的后期绑定调用。这里是麦克雷。我还没有开始整理 return 参数。
static void Main(string[] args)
{
Type type = Type.GetTypeFromProgID("Scripting.Dictionary");
Object com_obj = Activator.CreateInstance(type);
Object[] countArgs = new Object[1];
string msg;
BindingFlags invokeAttr = BindingFlags.InvokeMethod;
try
{
type.InvokeMember("Count", invokeAttr, null, com_obj, null);
}
catch (Exception ex)
{
msg = ex.Message + ":" + ex.InnerException.Message;
Debug.WriteLine(msg);
}
Console.ReadKey();
}
请尝试使用 BindingFlags invokeAttr = BindingFlags.GetProperty;
。
或者,您可以使用 C#s 动态将不可读代码减少到最低限度。
Type type = Type.GetTypeFromProgID("Scripting.Dictionary");
dynamic com_obj = Activator.CreateInstance(type);
var count = com_obj.Count;
Type.InvokeMember 失败并出现错误找不到成员 DISP_E_MEMBERNOTFOUND 尽管该成员肯定在那里。
VB 脚本编写者熟悉的 Microsoft Scripting Runtime
有一个词典 class 但我无法 运行 一个简单的后期绑定调用。这里是麦克雷。我还没有开始整理 return 参数。
static void Main(string[] args)
{
Type type = Type.GetTypeFromProgID("Scripting.Dictionary");
Object com_obj = Activator.CreateInstance(type);
Object[] countArgs = new Object[1];
string msg;
BindingFlags invokeAttr = BindingFlags.InvokeMethod;
try
{
type.InvokeMember("Count", invokeAttr, null, com_obj, null);
}
catch (Exception ex)
{
msg = ex.Message + ":" + ex.InnerException.Message;
Debug.WriteLine(msg);
}
Console.ReadKey();
}
请尝试使用 BindingFlags invokeAttr = BindingFlags.GetProperty;
。
或者,您可以使用 C#s 动态将不可读代码减少到最低限度。
Type type = Type.GetTypeFromProgID("Scripting.Dictionary");
dynamic com_obj = Activator.CreateInstance(type);
var count = com_obj.Count;