使用反射,有另一种方法吗?

时间:2009-11-29 15:33:20

标签: .net reflection .net-3.5

我有一个keyvaluepair(字符串,字符串)列表第一个字符串类似于class.property,第二个字符串是分配给该class.property的值。

我正在循环浏览该列表并使用反射设置每个值。

它有效,但我的问题是有更快的方法吗?

2 个答案:

答案 0 :(得分:3)

如果您反复使用相同的属性(例如针对各种目标对象),Delegate.CreateDelegate使用{{1}}并使用它会更快。但是,当我对它进行分析并发现这是一个瓶颈时,我只会这样做。它恰好与我的协议缓冲区实现有很大的不同,但实际上需要尽可能快,所以我很乐意应用一些微优化。

答案 1 :(得分:0)

如果您需要多次设置相同属性或属性,请多次缓存Type和PropertyInfo。缓存非常容易 - 并且检查类型通常需要花费时间在反射场景中。

如果您可以使用C#4,则可以使用dynamic来提供更快的解决方案。 (我已经看过.NET 3.5标签了,我以为我会提到它。)

相关问题