Hi guy, i just wondering that is it posible to convert the array of string
to
enum types dynamically, for example i get the list of countries name from
database and would like to convert all of them to Enum. If so please show
me
the way to do it
Thank you very much
Thomas
You can generate an Enum on the fly by using the methods in
System.Reflection.Emit namespace. The following code will create an Enum
with two countries.
AssemblyBuilder myAssemblyBuilder;
ModuleBuilder myModuleBuilder;
EnumBuilder myEnumBuilder;
AssemblyName myAssemblyName = new AssemblyName();
myAssemblyName.Name = "MyAssembly";
myAssemblyBuilder =
AppDomain.CurrentDomain.DefineDynamicAssembly(myAssemblyName,
AssemblyBuilderAccess.Run);
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("MyModule");
myEnumBuilder =
myModuleBuilder.DefineEnum("MyNamespace.Countries",TypeAttributes.Public,
typeof(Int32));
FieldBuilder myFieldBuilder1 = myEnumBuilder.DefineLiteral("Norway", 1);
FieldBuilder myFieldBuilder2 = myEnumBuilder.DefineLiteral("United Kingdom",
2);
myEnumBuilder.CreateType();
You can use this code as a boiler plate for your dynamic country enum.
Anders Norås
http://dotnetjunkies.com/weblog/anoras/