C# 动态添加enmu值
时间: 2023-12-02 08:43:08 浏览: 51
可以使用Enum.Parse()方法将字符串转换为枚举类型,并使用EnumBuilder类动态创建枚举类型并添加枚举值。以下是一个示例代码:
```csharp
using System;
using System.Reflection;using System.Reflection.Emit;
public class Program
{
public static void Main()
{
// 创建一个动态程序集
AssemblyName assemblyName = new AssemblyName("DynamicEnums");
AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave);
// 创建一个动态模块
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("DynamicEnumsModule", "DynamicEnums.dll");
// 创建一个动态枚举类型
EnumBuilder enumBuilder = moduleBuilder.DefineEnum("MyEnum", TypeAttributes.Public, typeof(int));
// 添加枚举值
enumBuilder.DefineLiteral("Value1", 1);
enumBuilder.DefineLiteral("Value2", 2);
enumBuilder.DefineLiteral("Value3", 3);
// 创建枚举类型
Type enumType = enumBuilder.CreateType();
// 使用枚举类型
object value = Enum.Parse(enumType, "Value2");
Console.WriteLine(value); // 输出:Value2
// 保存程序集
assemblyBuilder.Save("DynamicEnums.dll");
}
}
```