2016-06-06 38 views
0

我可以做这样的事情来得到一个字符串类型:C#通过字符串指定方法?

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

现在让我们说我有这样的:

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

我想在app.config中指定的测试方法为串。这是否有一个标准?

I.e. ... converter =“ConsoleApplication2.Program.Test,ConsoleApplication2”/>

是否有.Net方法已经拉动MethodInfo或最好委托?如果我最后删除它,它会在“所有情况下”工作吗?逗号前一部分的剖面,并获得该类型,然后GetMethod最后部分,即:

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

还是有什么陷阱,如果我那样做?

+0

目前还不清楚你正试图在这里实现什么,但你可能会更好看实现一个标准接口和指定类型而不是使用反射来确定调用方法。 – DavidG

+0

@DavidG - 我想通过app.config指定一个静态方法。我的API将它从app.config中取出,并将Delegate转换为静态方法。 – SledgeHammer

回答

0

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

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

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

现在把你的方法用的名字

更多信息

Type.GetMethods Method