C# 使用Word.Interop时如何正确访问AttachedTemplate?

C# 使用Word.Interop时如何正确访问AttachedTemplate?,c#,ms-word,interop,C#,Ms Word,Interop,我正在尝试使用Microsoft.Office.Interop.Word库从我的C#应用程序创建Microsoft Word文档。我使用一个模板文件来保存几个构建块,并用它们构建一个文档,如下所示: using Word = Microsoft.Office.Interop.Word Word.Application wdApplication = null; dynamic wdDocument = null; try { wdApplication = new Word.Applic

我正在尝试使用
Microsoft.Office.Interop.Word
库从我的C#应用程序创建Microsoft Word文档。我使用一个模板文件来保存几个构建块,并用它们构建一个文档,如下所示:

using Word = Microsoft.Office.Interop.Word

Word.Application wdApplication = null;
dynamic wdDocument = null;

try {
  wdApplication = new Word.Application();
  wdDocument = wdApplication.Documents.Add(Properties.Settings.Default.Template);
  wdDocument.AttachedTemplate.BuildingBlockEntries("Agenda.Header").Insert(wdDocument.Paragraphs.Last().Range);
  // ...
} catch { }
这样一切都很好。问题是因为我将
wdDocument
声明为
dynamic
我没有得到任何IntelliSense提示,否则会节省大量时间和精力

但是,当我尝试将
wdDocument
声明为
Word.Document
时,出现以下错误:

错误CS1545语言不支持属性、索引器或事件“\u Document.AttachedTemplate”;尝试直接调用访问器方法“\u Document.get\u AttachedTemplate()”或“\u Document.set\u AttachedTemplate(ref object)”

我还尝试将
wdDocument
声明为
Microsoft.Office.Tools.Word.Document
,但这只会在
wdApplication
wdDocument
之间引入类型转换错误


声明文档类型或访问存储在所附模板中的构建块的正确方法是什么?

非常感谢@mjwills让我走上了正确的道路。这是我用构建块创建Word文档的最后一段代码:

using Word = Microsoft.Office.Interop.Word;

public class Agenda {
  public static void Create() {
    Word.Application wordApplication = null;
    Word.Document wdDocument = null;
    Word.Template wdTemplate = null;
    Word.BuildingBlock wdBuildingBlock = null;

    object paramBBCategory = "Agenda";
    object paramBBName = "Header";

    try {
      wordApplication = new Word.Application();
      wdDocument = wordApplication.Documents.Add(Properties.Settings.Default.Template);
      wdTemplate = (Word.Template)wdDocument.get_AttachedTemplate();

      wdBuildingBlock = wdTemplate
        .BuildingBlockTypes.Item(Word.WdBuildingBlockTypes.wdTypeQuickParts)
        .Categories.Item(ref paramBBCategory)
        .BuildingBlocks.Item(ref paramBBName);
      wordBuildingBlock.Insert(wdDocument.Paragraphs.Last.Range);
    } catch { }
  }
}

请参阅MSDN上的这篇伟大的文章以供参考:

@mjwills我已经看到了该链接,但不幸的是它没有帮助。它是关于设置附加的模板,而不是访问其属性。无论如何谢谢你!因此,
get\u AttachedTemplate
对您不起作用吗?您可以分享您尝试使用
get\u AttachedTemplate()
时遇到的编译器错误吗?@mjwills当然可以。当我尝试使用
get_AttachedTemplate
时,我在第13行遇到以下错误:
CS1955错误非发票成员模板。BuildingBlockEntries不能像方法一样使用。
@mjwills感谢您的时间和努力!