C# 使用CodeDom/XSD生成类型化(长)枚举

C# 使用CodeDom/XSD生成类型化(长)枚举,c#,xsd,codedom,C#,Xsd,Codedom,很抱歉问了这个基本问题(不是我:)。我想使用CodeDom/Xsd生成以下类型(long)的枚举 public enum Boolean_YN : long { /// <remarks/> Y, /// <remarks/> N, } 公共枚举布尔值\u YN:long { /// Y /// N } 这是我的Xsd的一部分 <xs:simpleType name="Boo

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

public enum Boolean_YN : long
    {

        /// <remarks/>
        Y,

        /// <remarks/>
        N,
    }
公共枚举布尔值\u YN:long
{
/// 
Y
/// 
N
}
这是我的Xsd的一部分

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

为了使类型(long)出现在enum声明中,我应该在XSD中放置什么

谢谢。

在查看代码

  • 您需要声明枚举类型

    CodeTypeDeclaration-typeDeclaration=新的CodeTypeDeclaration(“布尔值”);
    typeDeclaration.IsEnum=true

  • 声明枚举成员

    CodeMemberField=newCodeMemberField(“System.Int64”,enummemberName);
    typeDeclaration.Members.Add(字段)

  • 有关如何从XSD中读取EnumMemberInfo和EnumInfo的更多详细信息,请参阅上面的链接。

  • 您需要声明枚举类型

    CodeTypeDeclaration-typeDeclaration=新的CodeTypeDeclaration(“布尔值”);
    typeDeclaration.IsEnum=true

  • 声明枚举成员

    CodeMemberField=newCodeMemberField(“System.Int64”,enummemberName);
    typeDeclaration.Members.Add(字段)


  • 请参阅上面的链接,获取有关如何从XSD读取EnumMemberInfo和EnumInfo的更多详细信息。

    我继承的代码没有那么大的灵活性。Xsd片段由带有restriction.Facets.Add(新的XmlSchemaEnumerationFacet{Value=“Y”})的XmlSchemaSimpleTypeRestriction生成;。我想知道,如果使用相同的限制,我是否可以在某处添加一个long类型,CodeDom将进行翻译。很抱歉,我对这个很陌生。我继承的代码没有那么大的灵活性。Xsd片段由带有restriction.Facets.Add(新的XmlSchemaEnumerationFacet{Value=“Y”})的XmlSchemaSimpleTypeRestriction生成;。我想知道,如果使用相同的限制,我是否可以在某处添加一个long类型,CodeDom将进行翻译。对不起,我对这个很陌生。你到底是如何生成代码的?您使用的是
    XmlCodeExporter
    ?@svick是的,我使用的是XmlCodeExporter。您是如何生成代码的?您正在使用
    XmlCodeExporter
    ?@svick是的,我正在使用XmlCodeExporter。