Microsoft Office Interop:无法将带 [] 的索引应用于 'object' 类型的表达式

Microsoft Office Interop: Cannot apply indexing with [] to an expression of type 'object'

我的Microsoft Office WORD VSTO Add-in的以下代码之前成功获取了文档标题。但是现在,它抛出了如下所示的错误:

string sTitle = oActiveDoc.BuiltInDocumentProperties["Title"].Value;

错误:

Cannot apply indexing with [] to an expression of type 'object'

基于一些类似的在线解决方案(例如 and this),我尝试了以下代码,但仍然得到完全相同的错误。

问题:我可能遗漏了什么,如何解决?

Ref: Document.BuiltInDocumentProperties gets a Microsoft.Office.Core.DocumentProperties collection 表示文档的所有 built-in 文档属性。

下面也给出了完全相同的错误:

string sTitle = oActiveDoc.BuiltInDocumentProperties["Title"].Value as string;

string sTitle = oActiveDoc.BuiltInDocumentProperties["Title"] as string;

尝试

string sTitle = oActiveDoc.BuiltInDocumentProperties.Item("Title").Value;

你能试试吗:

         string sTitle;
         dynamic properties = oActiveDoc.BuiltInDocumentProperties;
         var property = properties["Title"];    
         if (property != null)
          {
              sTitle = property.Value.ToString();
          }

有几种方法可以弥补您目前遇到的例外情况:

  1. 使用 dynamicobject 引用。在 页面上阅读有关此方法的更多信息。

  2. 使用.net framework中以Type.InvokeMember方式为代表的后期绑定技术。