Word Interop不提取数据

时间:2016-11-03 15:21:52

标签: c# ms-word ms-office vsto com-interop

我正在使用Word 2016,但我无法从对象中获取数据。

我的摘录如下:

    void Application_DocumentOpen(Word.Document document)
    {
        var test = document.Paragraphs;
    }

在分配之前看段落给出了:

方法评估Microsoft.Office.Interop.Word.DocumentClass.get_Paragraphs()调用需要COM调用。在此上下文中不支持对COM对象的方法进行评估。

之后它简单地给出:System._ComObject与成员NativeView有0x0df4fd18

我已尝试搜索这两个错误,但未找到相关结果。

更新 所以我将它与他们给出的例子进行了比较,即:

    void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)
    {
        Doc.Paragraphs[1].Range.InsertParagraphBefore();
        Doc.Paragraphs[1].Range.Text = "This text was added by using code.";
    }

如果我看一下Doc.Paragraphs[1].Range.Text的例子,我会得到段落的文字。如果我尝试使用我的版本,我得到:不能将带有[]的索引应用于“Paragraphs”类型的表达式

所以......段落没有回归我的期望。是否有可能我无法访问该文档,因为该方法在加载之前就已经开始了?

1 个答案:

答案 0 :(得分:0)

显然,只有已调用的方法/属性存在于类中。这是有道理的,因为它可以防止对象不断加载大量数据,但调试有点令人困惑。

在任何情况下,将测试更改为doc.Paragraphs [1] .Range.Text似乎已使对象可见。