System.Windows.PropertyPath - может ли этот класс помочь мне в размышлении о вложенных свойствах (типах)? - PullRequest
1 голос
/ 01 сентября 2011

В последнее время я сижу на тему Reflection, в основном с целью создания экземпляра нового класса и установки свойств для полей. По пути ... Где, например, у меня может быть класс с именем Games, с публичной собственностью -

Game myGame = new Game()

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

Так, например, я должен установить значение (с помощью магии отражения) для свойства с путем: "GamingProperties.HowToPlay"

До сих пор я использовал класс " PropertyReflector " Гая Махье - который делает именно то, что мне нужно, но медленно, когда дело доходит до отражения / десериализации 100 000-х объектов.

Чуть позже я обнаружил, что можно установить значения свойств намного быстрее, используя «Деревья выражений» (и хороший проект, такой как « FastReflection »). Но я застрял теперь с FastReflection, потому что я не могу правильно установить значения для вложенных типов ...

Во всяком случае - вопрос - может ли System.Windows.PropertyPath помочь мне как-то со всем этим? Это вообще связано? Может быть, я мог бы использовать его для своих нужд или использовать методы .Binding (тесно связанные с System.Windows.PropertyPath)?

Я надеюсь, что я был ясен и не слишком запутался в своем вопросе, и я буду благодарен за любые подсказки, предложения ...

1 Ответ

3 голосов
/ 01 сентября 2011

Короткий ответ - нет.PropertyPath используется системой привязки WPF для привязки DependencyProperties к другим свойствам (зависимым или обычным).При привязке к свойству зависимости система привязки может использовать путь свойства, чтобы разрешить привязанное свойство с использованием метаданных WPF.При привязке к свойству CLR он должен использовать отражение .NET для разрешения свойства.

В любом случае он обычно не используется для установки свойств CLR, но может использоваться с двусторонними привязками.

Это не обеспечит увеличение скорости для такого количества объектов, и я сомневаюсь, что это решение вашей проблемы.

...