【发布时间】:2012-04-30 12:06:13
【问题描述】:
是否有可能实现一个方法,该方法将方法名称和方法调用的参数集作为参数,执行方法并返回从方法执行中获得的返回值?
此方法应该用于调用具有任意数量和类型的参数以及任何返回类型的方法。
我知道这可以使用反射来实现,但我很感兴趣,如果存在不同的方法,它对性能的影响比使用反射要小。
后期编辑: 我需要实现这样的方法,因为我有一个包含许多不同方法的类,这些方法具有不同的方法签名,但大多数都是相同的格式:
{
//code block 1
}
using (SomeObject obj = InitializeObject(){
...
//some operations
...
}
{
//code block 2
}
were code block 1 和 code block 2 是相同的,只有 using 块中的部分不同。 我只想使用一种包含通用代码块的方法,并为从一种方法到另一种方法不同的部分调用不同的方法。 我尝试使用反射,但它会以明显的方式减慢应用程序的速度,所以我不会使用它。
【问题讨论】:
-
Reflection是只知道方法名的做事方式……你试过这个发现太慢了吗?
-
@Jon Skeet - 是的,我确实尝试过使用反射,但它显着降低了我的应用程序的速度。
-
您应该提供更多关于应用程序性质的数据,具体取决于您可以使用的数据,例如泛型、表达式等或充分设计系统。鉴于您的问题过于笼统,唯一的可能就是 JonSkeet 所说的反思
标签: c# reflection methods method-signature