我最近一直坐在Reflection的主题上,主要是为了实例化一个New类并在字段上设置属性。通过路径...... 例如,我可能有一个名为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
密切相关)?
我希望我清楚并且不会对我的问题太乱,我会对任何提示和建议感激不尽......
答案 0 :(得分:3)
简短的回答是否定的。 WPF绑定系统使用PropertyPath将DependencyProperties绑定到其他属性(依赖项或常规属性)。绑定到依赖项属性时,绑定系统可以使用属性路径来使用WPF元数据解析绑定属性。绑定到CLR属性时,必须使用.NET反射来解析属性。
在任何一种情况下,它通常不用于设置CLR属性,但它可以使用双向绑定。
它不会为许多物体提供速度提升,我怀疑它是解决问题的方法。