如何在 .NET 中使用参考文献

如何在 .NET 中使用参考文献

本指南展示了如何在 Word 的参考文献功能背后构建引文源数据 Aspose.Words FOSS 用于 .NET,使用 Source, Contributor, Person,并且 Corporate 类位于 Aspose.Words.Bibliography 命名空间。它涵盖了创建源记录、选择正确的源类型、分配个人和企业贡献者,以及添加源,以便 CITATION and BIBLIOGRAPHY 字段能够解析它们。

分步指南

步骤 1:安装包

Aspose.Words FOSS for .NET 尚未发布 NuGet 包——请改为从源码构建库。克隆 https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git,然后使用 .NET SDK 在 Release 配置下构建 Aspose.Words.sln,并在项目中引用生成的 Aspose.Words 程序集。该库目标为 .NET Standard 2.0,因此可在 .NET Framework 4.6.2+ 和 .NET 6/8/10 上运行。


步骤 2:导入所需类

为 Document 添加一个 using Aspose.Words; 指令,并为 Source、SourceType、Contributor、ContributorCollection、Person、PersonCollection 和 Corporate 添加一个 using Aspose.Words.Bibliography; 指令。


步骤 3:获取文档的参考文献数据

Document.Bibliography 返回一个 Bibliography 实例。它的 Sources 属性是一个 IList<Source>,保存文档可用的每个来源记录,BibliographyStyle 记录引用样式名称——例如 APA 或 MLA——当 BIBLIOGRAPHY 字段被更新时应使用该样式。


步骤 4:创建来源记录

使用 Source(tag, sourceType) 构造一个 Source:Tag 是后续 FieldCitation.SourceTag 与 FieldBibliography.SourceTag 匹配的短标识符,SourceType 是一个枚举值,用于标识来源类型——Book、BookSection、JournalArticle、ArticleInAPeriodical、ConferenceProceedings、Report、Patent、Case、InternetSite、DocumentFromInternetSite、Interview、Film、SoundRecording、Performance、Art、Electronic或Misc。为每个 Source 分配唯一的 Tag——它是引用字段用来查找正确记录的唯一值。


步骤 5:为所选来源类型填充字段

除了 Title 和 ShortTitle,Source 公开了数十个特定类别的字段——仅填充与所选 SourceType 相关的字段。图书来源使用 BookTitle、Edition、NumberVolumes、Volume、Pages 和 ChapterNumber。期刊来源使用 JournalName、PeriodicalTitle、PublicationTitle 和 Issue。网络来源使用 InternetSiteTitle、Url、DayAccessed、MonthAccessed 和 YearAccessed。法律来源使用 CaseNumber、AbbreviatedCaseNumber、Court 和 Reporter。录音和广播来源使用 AlbumTitle、Broadcaster、BroadcastTitle、RecordingNumber、Medium、ProductionCompany、Distributor、Station 和 Theater。通用字段适用于大多数来源类型:Publisher、City、StateOrProvince、CountryOrRegion、Year、Month、Day、Comments、Guid、Doi、Version、RefOrder 和 Lcid。


步骤 6:分配个人贡献者

Source.Contributors 返回一个 ContributorCollection,其中每个贡献者角色都有一个属性——Author、Editor、Translator、Compiler、Composer、Conductor、Counsel、Director、Interviewee、Interviewer、Inventor、Performer、Producer、Writer、Artist 和 BookAuthor——每个均为抽象的 Contributor 基类类型。将一个由 Last、First、Middle 构造的 Person 分配给角色属性,以表示单个具名个人。


第7步:分配多个或企业贡献者

当一个角色拥有多个个人贡献者时,分配一个PersonCollection而不是单个Person——PersonCollection也继承自Contributor并实现IEnumerable<Person>,并使用Add()、Remove()、RemoveAt()、Clear()、Contains()和Count来管理其成员。当贡献者是组织而非个人时,改为为角色属性分配一个Corporate(由其Name构建)。Person、PersonCollection和Corporate都满足相同的Contributor类型角色属性,因此请选择最适合源的那个。


第8步:添加来源以便引用字段能够解析它

添加所有已完成的 Source to Document.Bibliography.Sources 在更新任何之前 CITATION or BIBLIOGRAPHY 引用它的字段 – 一个已构建但从未添加的来源没有任何可供引用字段解析的内容。 Source 记录仅提供数据;它们本身不渲染引用或参考文献文本。渲染是通过 FieldCitation and FieldBibliography,在 链接与参考指南.

常见问题及解决方案

CITATION 或 BIBLIOGRAPHY 字段无法解析 该 Source.Tag 并不完全匹配该字段的 SourceTag. 确认标签匹配,并且 Source 实际上已添加到 Document.Bibliography.Sources.

错误的贡献者类型已分配给角色 A Person 在存在多个贡献者的情况下被分配,或反之。使用 PersonCollection 用于一个角色中的多个人员, Person 用于单个个人,并且 Corporate 用于组织。

源字段看起来与其类型不一致 不同的字段 SourceType 已填充——例如,网页字段如 Url and DayAccessed 设置在一个 Book 源。仅填充与所选相关的字段 SourceType.

具有多个作者的来源仅显示一个姓名 单个 Person 已分配给 Author 而不是 a PersonCollection. 创建一个 PersonCollection, 添加每个 Person with Add(), 并将集合分配给 role 属性。

BibliographyStyle 与我期望的引用格式不匹配 Bibliography.BibliographyStyle 记录要应用的引用样式名称——保持与文档的 FieldCitation 字段期望其输出的格式化方式。

常见问题

如何添加只有单一作者的图书来源?

创建一个包含SourceType.Book的Source,设置BookTitle、Publisher、Year以及相关字段,然后将Person分配给Source.Contributors.Author。

如何添加包含多个作者的来源?

将一个通过Add()填充了Person实例的PersonCollection——分配给相关的ContributorCollection角色属性,例如Author。

我该如何引用组织而不是个人?

将一个使用组织的 Name 构造的 Corporate 实例分配给 ContributorCollection 角色属性,而不是 Person 或 PersonCollection。

Source 记录在渲染后的文档中实际出现在哪里?

它们不会自行渲染—— FieldCitation and FieldBibliography 字段渲染从它们构建的内容,并与之匹配 SourceTag. 请参阅 链接和引用指南.

什么标识 Source 记录,使引用它的字段能够识别?

Source.Tag,在 Source(tag, sourceType) 构造函数中设置——FieldCitation.SourceTag 和 FieldBibliography.SourceTag 与此精确值匹配。

另请参阅

 中文