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屬性,但它可以使用雙向綁定。

它不會爲許多對象提供速度提升,我懷疑它是解決您的問題的方法。

相關問題