(C#)如何使用Mono.Cecil确定它是否是枚举类型?

(C#)如何使用Mono.Cecil确定它是否是枚举类型?,c#,mono.cecil,C#,Mono.cecil,如何使用Mono.Cecil确定它是否是枚举类型 仅使用Type.IsEnum很容易确定。但是我在TypeDefinition中找不到任何类似的函数 有没有办法确定?在TypeDefinition上有一个IsEnum属性 哦,在你问下一个问题之前,下面是如何使用Cecil将枚举字符串解析回它的int值 int ParseEnum(类型引用enumRef,字符串值) { var enumDef=enumRef.Resolve(); 如果(!enumDef.IsEnum) 抛出新的InvalidOp

如何使用Mono.Cecil确定它是否是枚举类型

仅使用Type.IsEnum很容易确定。但是我在TypeDefinition中找不到任何类似的函数


有没有办法确定?

TypeDefinition
上有一个
IsEnum
属性

哦,在你问下一个问题之前,下面是如何使用Cecil将枚举字符串解析回它的int值

int ParseEnum(类型引用enumRef,字符串值)
{
var enumDef=enumRef.Resolve();
如果(!enumDef.IsEnum)
抛出新的InvalidOperationException();
int?结果=null;
foreach(value.Split(',')中的变量v){
foreach(enumDef.Fields中的变量字段){
如果(field.Name==“value\uuuu”)
持续
如果(field.Name==v.Trim())
结果=(结果??0)|(int)field.Constant;
}
}
if(result.HasValue)
返回结果值;
抛出新异常(string.Format(“未找到{0}的枚举值”,value));
}

TypeDefinition
上似乎确实有一个
IsEnum
属性。看见如果您的版本不包含此项,则可以编写与源代码相同的扩展方法