Internals of Dependeny Property in WPFを読んだ後、Dependeny Properties が Silverlight for WP7 でどのように実装されているのか疑問に思っています。調査には、 xda フォーラムの Reflector と Dllが使用されました。
WPF の場合:
DependencyProperty は、WPF オブジェクト階層に登録するすべての DependencyProperty の静的参照を維持します。DependencyProperty オブジェクトを取得するために内部で使用する PropertyFromName という名前の HashTable を維持します。つまり、各依存プロパティ オブジェクトはグローバル HashTable に登録されます。
Silverlight for WP7 では、DependencyProperties にほぼ同じグローバル HashTable があります (実際には
static Dictionary<Type, Dictionary<string, DependencyProperty>> _registeredProperties
)
しかし、 DependencyObjectクラスのGetValueメソッドとSetValueメソッドのソース コードを調べたところ、_ registeredPropertiesがまったく使用されていないことがわかりました。
なぜそのような方法で実装されているのか誰にも分かりますか? それとも、私は何かを逃したのでしょうか?前もって感謝します。