我得到了一个内部方法,其中一个输入参数是一个内部枚举。如何获取枚举值并将其传递给方法?
例子:
internal enum MyEnum
{
One,
Two,
Three
}
internal int InternalTest(string test, MyEnum enumTest)
{
return test.Length;
}
然后通过这样的方式获取:
MethodInfo addInternal = typeof(Class1).GetMethod("InternalTest", BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(string), typeof(?????) }, null);
谢谢!
伊瓦尔
最佳答案
如果它在不同的程序集中,则必须通过名称获取类型;
Type type = assembly.GetType("SomeNamespace.SomeType+SomeNestedType");
这可能是(来自示例):
Type type = typeof(Class1).Assembly.GetType("Class1+MyEnum");
一个更有趣的问题是:如何为枚举获取一个值(装箱到正确的类型)——你需要这样的东西:
object val = Enum.ToObject(type, 123);
关于c# - 如何使用反射在私有(private)方法中使用私有(private)枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996408/