我得到了一个方法的名称:"Garden.Plugins.Code.Beta.Business.CalculateRest“
如何运行它?我想到了这个奇特的基于反射的解决方案,比如RunMethod(string MethodName)
发布于 2008-12-02 11:19:04
BindingFlags.Public | BindingFlags.Static.如果你想调用一个实例方法或者一个接受参数的方法,你也需要弄清楚如何获取这些信息。
发布于 2008-12-02 12:12:58
它并不像处理文字类型名那样处理最后一个点左边的所有内容。如果你有一种类型的表单:
X.Y.Z.Type
那么X、Y和Z就不一定是名称空间了。它们也可以是类型本身,随后的部分可以是内部类:
class X
{
class Y
{
// etc
}
}如果是这种情况,那么Type.GetType("X.YU")将不会解析为Y class.Instead,clr使用+符号分隔内部类,因此您实际上需要调用Type.GetType("X+Y");
如果你调用的方法是一个参数的方法,那么你需要做一些额外的工作。您需要将变量参数向上滚动到一个数组中,并传递此参数。您可以通过获取方法的ParameterInfo数据并查看最后一个参数是否附加了ParamArray属性来检查变量参数。
发布于 2008-12-02 11:14:03
会很慢的,相信我。所以不要把它放在一个关键的地方。
除此之外,你只能“手工”完成。开始枚举所有的名称空间、类等,直到找到所需的内容。我不认为有任何花哨的预制已经做到了这一点。(虽然我没有搜索过)
https://stackoverflow.com/questions/333655
复制相似问题