You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

xsd.exe生成的C#文件能否包含Schema版本信息?

如何让xsd.exe生成的C#文件带上Schema版本信息

xsd.exe本身没有原生支持把Schema里的version属性自动加到生成的C#代码里,但有两种实用方法可以实现你的需求:

方法1:生成后手动补充(简单直接)

用xsd.exe生成完C#类文件后,直接在根类上添加注释或者自定义属性:

  • 加注释的示例:
/// <summary>
/// 对应Schema版本:1.0.2
/// </summary>
[XmlRoot(Namespace = "你的命名空间", IsNullable = false)]
public partial class YourRootClass {
    // 自动生成的类内容
}
  • 加自定义属性字段的示例(用XmlIgnore避免序列化时输出):
[XmlIgnore]
public string SchemaVersion => "1.0.2";

如果是partial类,建议把这些自定义内容放到单独的非自动生成partial文件里,这样下次重新生成代码时不会被覆盖。

方法2:自动化注入(适合频繁生成场景)

如果需要每次生成都自动带上版本,得走两步:

  1. 写个简单脚本(PowerShell、Python都行),从Schema文件里提取xs:schema节点的version值;
  2. 用T4模板替代xsd.exe生成代码,在模板里把提取到的版本信息注入到注释或者类属性里。
    这种方式能把版本注入做成自动化流程,不用每次手动改。

额外说明

xsd.exe的核心是生成符合XML序列化规则的C#类,它不会保留Schema的元数据(比如version这类属性),所以必须通过额外步骤来补充。如果你们有代码生成流水线,优先推荐T4模板的方式,能统一维护版本信息的注入。

内容的提问来源于stack exchange,提问作者struggling-to-work

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:15:59