Internals of Dependeny Property in WPF을 읽은 후 Dependeny Properties가 WP7 용 Silverlight에서 어떻게 구현되는지 궁금합니다. 조사를 위해 xda forum에서 리플렉터 및 Dll을 사용했습니다. WPF에서WP7의 의존성 속성 내부 구조
:
는은 DependencyProperty는 WPF 객체 계층 구조에 등록 된 모든 하는 DependencyProperty의 정적 참조를 유지합니다. 내부적으로 DependencyProperty 개체를 가져 오기 위해 사용하는 PropertyFromName이라는 HashTable을 유지 관리합니다. 즉, 각 dependencyProperty 개체는 전역 HashTable에 등록됩니다. WP7의 DependencyProperties에 대한
실버 라이트에서
는
(실제로는
static Dictionary<Type, Dictionary<string, DependencyProperty>> _registeredProperties
입니다)하지만 거의 같은 글로벌 해시를 가지고있는 GetValue 및 SetValue를의 소스 코드를 찾고 후 방법 종속성 개체 클래스 나는 그것을 볼 수 있습니다 _ registeredProperties은 전혀 사용되지 않습니다.
왜 그런 식으로 구현 된 사람이 있습니까? 아니면 내가 놓친 것일까 요? 미리 감사드립니다.
당신이 맞습니다, @KooKiz. 감사! CustomAttachedDependencyProperty 및 CustomDependencyProperty 값이 DependencyObject 클래스의 _valueTable 필드에 저장되는 동안 CoreDependencyProperty의 값이 네이티브 호출을 사용하여 어딘가에 저장되는 이유를 알고있을 것입니다. –
확실하게 말할 수 없습니다. 아마도 WebBrowser와 같은 일부 컨트롤은 네이티브 컨트롤에 대한 래퍼 일뿐입니다. 따라서 이러한 컨트롤에 네이티브 종속성 속성이있는 것이 더 쉽습니다. –
좋은 생각, @KooKiz, thx. –