Type.InvokeMember失败了,错误无法找到成员DISP_E_MEMBERNOTFOUND,尽管该成员确实存在。
VB脚本编写人员熟悉的Microsoft Scripting Runtime有一个字典类,但我没有运行一个简单的后期绑定调用。这是MCRE。我还没有开始整理返回的论点。
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();
}发布于 2018-03-27 20:26:40
尝试使用BindingFlags invokeAttr = BindingFlags.GetProperty;代替。另外,您可以使用C#s动态将不可读代码减少到最低限度。
Type type = Type.GetTypeFromProgID("Scripting.Dictionary");
dynamic com_obj = Activator.CreateInstance(type);
var count = com_obj.Count;https://stackoverflow.com/questions/49521409
复制相似问题