Skip to content

Comments

docs: add XML comments for Metadata query APIs and document models#6

Open
mrbbbaixue wants to merge 1 commit intocsharp-linqfrom
codex/summarize-common-metadata-nodes
Open

docs: add XML comments for Metadata query APIs and document models#6
mrbbbaixue wants to merge 1 commit intocsharp-linqfrom
codex/summarize-common-metadata-nodes

Conversation

@mrbbbaixue
Copy link
Member

Motivation

  • 提升新引入的查询友好型 API 的可读性和 IDE 悬停提示,便于调用方直接使用 metadata.Mods() / metadata.Catalog() 等表达式而不用反复阅读实现细节。
  • 明确 Metadata 中叶子节点文本值语义,避免调用方误用并为序列化/反序列化场景提供可用的树形结构和业务实体快照。

Description

  • 为查询模型新增并补充了 XML 注释:添加 Ra3.BattleNet.Metadata/MetadataModels.csMetadataNodeBusinessEntity)以说明字段与语义。
  • 添加并注释查询类型与记录:Ra3.BattleNet.Metadata/MetadataQueryModels.csMetadataCatalogModEntryApplicationEntryPackageEntryMarkdownEntryImageEntry)。
  • 添加并注释扩展方法:Ra3.BattleNet.Metadata/MetadataQueryExtensions.cs,提供 Catalog()Mods()Applications()Markdowns()Images() 等便捷 API 及映射辅助方法(ToMod/ToApplication/ReadPackages)。
  • Ra3.BattleNet.Metadata/Metadata.cs 中保存并导出叶子节点值(新增 _value 字段与 Value 属性),并增加 ToNodeTree()GetBusinessEntities()CollectEntityProperties()BuildNode()GetAllNodes() 等辅助方法以导出树形 MetadataNode 与归一化的 BusinessEntity 列表。
  • Program.cs 增加示例输出,打印业务实体概览以及 metadata.Mods() 示例;在 USAGE_EXAMPLE.md 新增“场景0”示例;并在测试项目 Ra3.BattleNet.Metadata.Tests/MetadataTests.cs 中新增覆盖 ToNodeTreeGetBusinessEntitiesModsCatalog 的单元测试。

Testing

  • 已向测试项目添加相关单元测试(ToNodeTree_ShouldKeepLeafValueGetBusinessEntities_ShouldReturnTypedEntitiesMods_ShouldExposeVersionAndPackagesCatalog_ShouldProvideConvenientLookup),但尝试运行 dotnet test 失败,因执行环境缺少 dotnet CLI(bash: command not found: dotnet)。

Codex Task

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 20, 2026

Deploying ra3battlenet-metadata with  Cloudflare Pages  Cloudflare Pages

Latest commit: a786279
Status:🚫  Build failed.

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant