【发布时间】:2013-01-10 18:44:10
【问题描述】:
我的应用程序当前正在从数据库中读取我需要调用的方法列表,并将它们放入字符串中。
我希望能够通过它们的名称调用这些方法,并将参数传递给它们。
这是我想要实现的一个简单示例:
protected void Page_Load(object sender, EventArgs e)
{
...
...
string MethodOne = "CombineText";
string WordOne = "Hello";
string WordTwo = "World";
CombineText(WordOne, WordTwo);
}
public void CombineText(string WordOne, string WordTwo)
{
Console.WriteLine(WordOne+" "+WordTwo);
}
我在网上看到很多关于调用静态方法的示例,但我不知道如何从字符串中按名称调用 Public Void 方法。
有人有什么想法吗?非常感谢!
【问题讨论】:
-
你卡在哪一部分了?
-
你怎么知道这个方法属于哪个类?它会一直是当前类型吗?你怎么知道方法的签名?字符串是否总是包含具有固定签名的方法?如果不是,你怎么知道参数是什么,它们应该是什么类型,从哪里得到它们等等。还要注意这种模式是代码异味;你真的应该避免将字符串作为代码执行的一般概念,通常有更好的方法。
-
switch声明是否足够?它必须是方法的名称吗?
标签: c# string dynamic methods invoke