使用CodeDom/XSD生成类型化(长)Enum

本文关键字:Enum 类型化 CodeDom XSD 使用 | 更新日期: 2023-09-27 18:11:23

很抱歉这个基本问题(不是为我:))。我想使用CodeDom/Xsd生成类型为(long)的enum。

public enum Boolean_YN : long
    {
        /// <remarks/>
        Y,
        /// <remarks/>
        N,
    }

这是我的Xsd

<xs:simpleType name="Boolean_YN">
<xs:restriction base="xs:string">
  <xs:enumeration value="Y" />
  <xs:enumeration value="N" />
</xs:restriction>
</xs:simpleType>

我应该在XSD中放入什么来使类型(long)出现在我的enum声明中。

谢谢。

使用CodeDom/XSD生成类型化(长)Enum

在VSSDK-Extensibility-Samples查看代码

  1. 你需要声明Enum类型

    CodeTypeDeclaration typeDeclaration = new CodeTypeDeclaration("Boolean_YN"); typeDeclaration.IsEnum = true;

  2. 声明枚举成员

    CodeMemberField field = new CodeMemberField("System.Int64", enummemberName); typeDeclaration.Members.Add(field);

参考上面的链接获取更多关于如何从XSD读取EnumMemberInfo和EnumInfo的详细信息