1

我一直坐在反射的主题最近,主要是为了实例化新课程和设置字段的属性..通过路径... 在哪里,例如我可能有一个类叫做游戏,与公共物业 -System.Windows.PropertyPath - 该类可以帮助我深层嵌套属性(类型)的反思吗?

Game myGame = new Game() 

myGame.GamingProperties.HowToPlay = "bla bla bla"; 
myGame.StateProperties.CreationTime = DateTime.Today; 

因此,例如,我有一个路径上设置属性值(与反射魔法):我一直在使用“PropertyReflector”类“GamingProperties.HowToPlay”

直到现在由Guy Mahieu完成 - 它完全符合我的需要,但在反映/反序列化100,000-s物体时却很慢。

比特后来我发现通过使用“表达式树”(和一个像“FastReflection”这样的项目)是一个很好的例子,可以更快地设置属性值。但是我现在被FastReflection卡住了,因为我无法正确设置嵌套类型的值...

无论如何 - 问题是 - 是否System.Windows.PropertyPath可以帮助我以某种方式与所有这一切?它甚至有关系吗?也许我可以用它来满足我的需求,或者使用.Binding方法(与System.Windows.PropertyPath密切相关)?

我希望我是清楚的,而不是太乱了我的问题,我会为任何提示,建议感激......

+0

为什么不能用FastReflection设置嵌套类型的值?如果你直接使用'Expression',这应该是可能的。 – svick

+0

是的。我想我可以 - 只需要弄清楚如何做到这一点... :) – Denis

+1

那么你为什么不问一个关于这个问题? – svick

回答

3

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

无论哪种情况,通常不用于设置CLR属性,但它可以使用双向绑定。

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

相关问题