可以使用枚举生成器。
public static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
AssemblyName aName = new AssemblyName("TempAssembly");
AssemblyBuilder ab = currentDomain.DefineDynamicAssembly(
aName, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder mb = ab.DefineDynamicModule(aName.Name, aName.Name + ".dll");
EnumBuilder eb = mb.DefineEnum("YOUR_ENUM_NAME", TypeAttributes.Public, typeof(int));
eb.DefineLiteral("UnknownCommand", 0);
eb.DefineLiteral("SoftwareVersion", 1);
Type finished = eb.CreateType();
ab.Save(aName.Name + ".dll");
foreach( object o in Enum.GetValues(YOUR_ENUM_NAME) )
{
Console.WriteLine("{0}.{1} = {2}", finished, o, ((int) o));
}
Array values = Enum.GetValues ( typeof ( YOUR_ENUM_NAME ) );
foreach (var val in values)
{
Console.WriteLine ( String.Format ( "{0}: {1}",
Enum.GetName ( typeof ( YOUR_ENUM_NAME ), val ),
val ) );
}
}