【发布时间】:2011-09-01 14:51:36
【问题描述】:
我最近一直在讨论反射这个话题,主要是为了实例化一个新类并在字段上设置属性..通过路径...... 例如,我可能有一个名为 Games 的类,它具有公共属性 -
Game myGame = new Game()
myGame.GamingProperties.HowToPlay = "bla bla bla";
myGame.StateProperties.CreationTime = DateTime.Today;
例如,我必须在属性上设置值(使用反射魔法),路径为:“GamingProperties.HowToPlay”
到目前为止,我一直在使用 Guy Mahieu 的“PropertyReflector”类 - 这正是我所需要的,但在反射/反序列化 100,000 个对象时速度较慢。
稍后我发现使用“表达式树”(以及像“FastReflection”这样的项目)可以更快地设置属性值是一个很好的例子。但我现在被 FastReflection 卡住了因为我无法在嵌套类型上正确设置值...
无论如何——问题是——System.Windows.PropertyPath 是否能以某种方式帮助我解决这一切?它甚至有关系吗?也许我可以根据需要使用它,或者使用.Binding 方法(与System.Windows.PropertyPath 密切相关)?
我希望我的问题很清楚,不要太混乱,我将不胜感激任何提示和建议......
【问题讨论】:
-
为什么不能使用 FastReflection 设置嵌套类型的值?如果您直接使用
Expressions 应该可以。 -
是的。我想我可以 - 只需要弄清楚如何正确地做...... :)
-
那你为什么不问一个问题呢?
标签: data-binding reflection c#-4.0 system.reflection propertyinfo