我有一个keyvaluepair(字符串,字符串)列表第一个字符串类似于class.property,第二个字符串是分配给该class.property的值。
我正在循环浏览该列表并使用反射设置每个值。
它有效,但我的问题是有更快的方法吗?
答案 0 :(得分:3)
如果您反复使用相同的属性(例如针对各种目标对象),Delegate.CreateDelegate
使用{{1}}并使用它会更快。但是,当我对它进行分析并发现这是一个瓶颈时,我只会这样做。它恰好与我的协议缓冲区实现有很大的不同,但实际上需要尽可能快,所以我很乐意应用一些微优化。
答案 1 :(得分:0)
如果您需要多次设置相同属性或属性,请多次缓存Type和PropertyInfo。缓存非常容易 - 并且检查类型通常需要花费时间在反射场景中。
如果您可以使用C#4,则可以使用dynamic来提供更快的解决方案。 (我已经看过.NET 3.5标签了,我以为我会提到它。)