我正在尝试使用以下代码从正在运行的Microsoft Word应用程序访问某些信息..
object appClass = Marshal.GetActiveObject("Word.Application");
object documents = appClass.GetType().GetProperty("Documents");
object count = documents.GetType().InvokeMember("Count", BindingFlags.GetProperty, null, documents, null);
当我运行此代码时,它告诉我找不到Count并且抛出了MissingMemberException。
谁能告诉我我做错了什么?
答案 0 :(得分:0)
您没有获得对Documents对象的引用,GetProperty返回PropertyInfo。修正:
object appClass = Marshal.GetActiveObject("Word.Application");
object documents = appClass.GetType().InvokeMember("Documents", BindingFlags.GetProperty, null, appClass, null);
object count = documents.GetType().InvokeMember("Count", BindingFlags.GetProperty, null, documents, null);
添加对Microsoft.Office.Word.Interop的引用可以减少对 lot 的痛苦。