C#通过字符串指定方法?

时间:2016-06-06 23:12:21

标签: c# .net reflection

我可以做类似的事情从字符串中获取TYPE:

Type.GetType("System.Int32, mscorlib")

现在让我说我有这个:

class Program
{
    static int Test(int x)
    {
        return x;
    }
    .
    .

我想将app.config中的Test方法指定为字符串。这有标准吗?

即。 ... converter =“ConsoleApplication2.Program.Test,ConsoleApplication2”/>

是否已经有一个.Net方法来提取MethodInfo或者最好是代理?如果我删除最后一个,它会在“所有情况下”工作吗?在逗号之前的部分的部分并得到它的类型,然后GetMethod为最后一部分,即:

Type type = Type.GetType("ConsoleApplication2.Program");
type.GetMethod("Test")

或者如果我这样做会有什么陷阱吗?

1 个答案:

答案 0 :(得分:0)

GetMethods将返回MethodInfo对象数组,表示为当前Type定义的与指定绑定约束匹配的所有方法。

使用BindingFlags.DeclaredOnly仅搜索在Type上声明的方法,而不是仅仅继承的方法。

MethodInfo[] Methods = type.GetMethod(BindingFlags.Static| BindingFlags.NonPublic| BindingFlags.DeclaredOnly);

现在使用名称

获取您的方法

更多信息

Type.GetMethods Method