c# - 如何使用反射在私有(private)方法中使用私有(private)枚举?

标签 c# reflection enums

我得到了一个内部方法,其中一个输入参数是一个内部枚举。如何获取枚举值并将其传递给方法?

例子:

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/

相关文章:

c# - 当我使用 void 时,内存看到的是什么数据类型?

java - 通过 Java 中的反射设置私有(private)字段的最短、最好、最干净的方法是什么?

C# 通用接口(interface)

c# - 通过反射获取基类的私有(private)属性/方法

sql-server - 查找表太多

java - 枚举中的特殊字符

c# - 无法使用 {} 将事件添加到动态生成的控件

C# Timer elapsed 在停止后仍然运行多一点

c# - Azure AD - 将所有用户基本信息提取到列表中

Swift 枚举原始值 : not working with CGFloat = -1. 0