Ale*_*ndr 5 c# reflection enums
我一直在寻找,但没有找到解决方案.我在GAC中有一个程序集.我必须使用反射加载它.在那之后,我需要得到并向Enum发表讲话.但相反,我可以得到MemberInfo[].我不明白如何转换MemberInfo[]为Enum.
我有这样的代码:
//test assembly contains
public class MyClass
{
public enum MyEnum
{
MyVavue,
MyValue2
}
}
Assembly s = Assembly.Load("test");
Type type = s.GetTypes()[1];
MemberInfo[] memberInfos = type.GetMembers(
BindingFlags.Public |
BindingFlags.Static);
//I need to convert memberInfos to MyEnum
//and after that receive ---> MyEnum.MyValue <---
Run Code Online (Sandbox Code Playgroud)
你应该简单地使用Enum.GetValues.这正是它的作用 - 使用反射来获取枚举字段:
Assembly s = Assembly.Load("test");
Type type = s.GetTypes()[1];
object[] values = Enum.GetValues(type);
object myValue = values.First(v => v.ToString() == "MyValue");
Run Code Online (Sandbox Code Playgroud)