2010-12-01 52 views
0

我试图访问使用下面的代码运行的Microsoft Word应用程序的一些信息..使用后期绑定自动化Word抛出一个MissingMemberException

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

您没有得到对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参考可以使这个很多那么痛苦。

+0

哦,快乐,我可以闻到那个无名英雄徽章吧! – 2010-12-01 06:49:18