c#反射只能够Load本名字空间以及mscore.dll空间的类型,如果需要获得某DLL中类型,必须通过如下加载Assembly然后才能获取到相应的类型:
Assembly assembly = Assembly.Load(“XDLL.dll”);
Type type = assembly.GetType(“MyDLL.MyEnum”);
FieldInfo enumItem = type.GetField(“ENUM_TEST”);
object enumValue= Enum.ToObject(type, enumItem.GetValue(type));
最后一行代码得到的就是对应的enum对象的实例,可以传递给方法调用,type.GetField方法中的字符串其实就是enum中的字符串名字。要得到这个名字的列表也很容易:
string[] names = Enum.GetNames(type);
本文详细介绍了C#反射技术如何在.NET框架下加载特定DLL,并获取其中的枚举类型及其成员。包括如何使用Assembly.Load加载DLL,获取指定类型的FieldInfo和通过Enum.GetNames获取枚举值名称列表。
1556

被折叠的 条评论
为什么被折叠?



