System.Windows.PropertyPath——这个类可以帮助我反思深度嵌套的属性(类型)吗?



我最近一直在讨论反射的话题,主要是为了实例化一个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密切相关)?

我希望我的问题很清楚,不要太混乱,我将感谢任何提示,建议…

简短的回答是否定的。WPF绑定系统使用PropertyPath将DependencyProperties绑定到其他属性(依赖属性或常规属性)。当绑定到依赖项属性时,绑定系统可以使用属性路径来使用WPF元数据解析绑定属性。当绑定到CLR属性时,它必须使用。net反射来解析该属性。

在这两种情况下,它通常不用于设置CLR属性,但它可以用于双向绑定。

它不会为那么多对象提供速度提升,我怀疑它是不是解决你问题的方法。

相关内容

  • 没有找到相关文章

最新更新