【发布时间】:2019-05-21 05:08:56
【问题描述】:
private int GenerateKey(T requestParams)
{
foreach (PropertyInfo property in requestParams.GetType().GetProperties())
{
var propertyValue = property.GetValue(requestParams);
// Do stuff with propertyValue
}
// ...
}
我有这段代码 sn-p 遍历泛型类型属性并提取每个属性的值。我知道反射可能是一个巨大的性能瓶颈,并且可以使用委托/DynamicMethod/ILGenerator 对其进行改进。然而,掌握这些是相当困难的。有关如何使用其中一种方法的示例将非常棒。
【问题讨论】:
-
只有当你真的遇到性能问题时,你才应该为此烦恼。这样做prematurely is poor evil
-
GenerateKey方法是否为相同的T requestParams创建相同的密钥? -
@Emrah Süngü 是的
-
@Lemanas 你能发布更完整的代码吗?您能否提及您的方法的用例。你会用同一个 T 类的不同实例多次调用这个方法吗?如果你打算很少使用这个方法,你不需要优化这个方法
标签: c# reflection delegates system.reflection dynamicmethod