Flags attribute zu dynamisch erstelltem Enum hinzufügen.

  • VB.NET

    Flags attribute zu dynamisch erstelltem Enum hinzufügen.

    Wie füge ich das <Flags> Attribut einem dynamisch erstelltem Enum hinzu?
    Habe bereits
    eb.SetCustomAttribute(New CustomAttributeBuilder(GetType(FlagsAttribute).GetConstructor(Type.EmptyTypes), New Object() {}))
    probiert, hat aber nicht geklappt.

    Der Codeausschnitt:


    VB.NET-Quellcode

    1. Dim currentDomain As AppDomain = AppDomain.CurrentDomain
    2. Dim aName As AssemblyName = New AssemblyName("TempAssembly")
    3. Dim ab As AssemblyBuilder = currentDomain.DefineDynamicAssembly( _
    4. aName, AssemblyBuilderAccess.RunAndSave)
    5. Dim mb As ModuleBuilder = _
    6. ab.DefineDynamicModule(aName.Name, aName.Name & ".dll")
    7. Dim eb As EnumBuilder = mb.DefineEnum("Test", TypeAttributes.Public, GetType(Integer))
    8. eb.SetCustomAttribute(New CustomAttributeBuilder(GetType(FlagsAttribute).GetConstructor(Type.EmptyTypes), New Object() {}))
    9. For Each item In elements
    10. eb.DefineLiteral(item.Split(";"c)(0), Integer.Parse(item.Split(";"c)(1)))
    11. Next
    12. Dim finished As Type = eb.CreateType()
    13. ab.Save(aName.Name & ".dll")