2013-09-22 5 views
2

응용 프로그램이 시작된 후 Generic.xaml 파일에 저장된 Style 파일이로드되는 시점과 이것이 완료된 후 이것이 얼마나 자주 발생하는지 궁금합니다. 즉, 한번만 또는 Control의 새 객체가 인스턴스화 될 때마다로드됩니까? 또한 얼마나 자주 자원 파일에서 Style 리소스가 실제로 읽혀지고 있습니까?Generic.xaml-styles가 언제로드됩니까?

답변

2

I. 컨트롤의 새 개체가 인스턴스화 될 때마다 한 번만로드되는 것을 의미합니까?

Style's, ResourceDictionary은 프로그램 시작시 한 번만로드됩니다. link에서 인용구 : "컴파일"한다 프로젝트에서 "테마"디렉토리 아래

모든 자원 사전 (이 컴파일 과정이 msbuild를 수행하고 사용자가 작업 건설) BAML 표현으로, 그리고 그 BAML 파일이있을 것입니다 마지막으로 컴파일 된 어셈블리의 리소스 파일로 처리됩니다.

테마 어셈블리의 또 다른 이점은 테마 어셈블리 내의 리소스 사전이 한 번만로드되기 때문에 테마 어셈블리를 사용하여 리소스 전용 또는 공유 리소스 어셈블리를 정의 할 수 있다는 점입니다. 이는 ResourceDictionary보다 훨씬 많은 이점을 제공합니다. MergedDictonaries 메커니즘.

II. 또한 스타일 파일은 실제로 리소스 파일에서 얼마나 자주 읽혀지고 있습니까?

Style, ResourceDictionary은 BAML 코드로 컴파일되며 이러한 리소스는 어셈블리의 일부입니다. 모든 어셈블리는 JIT 컴파일러 (처음부터)에 의해 메모리에 한 번로드되고 추가 작업은 메모리의 응용 프로그램에 있습니다. 제 말은, 파일이 스타일을 읽을 때마다 응용 프로그램이 JIT 컴파일러의 논리에 따르면, 모든 것이 메타 데이터 형식으로 메모리에 저장되고 이후 처리가 메모리에서 수행되어야한다고 생각하지 않습니다. .

JIT 컴파일러의 작업과 .NET에 관한 내용은 멋진 bookJeffrey Richter으로 읽을 수 있습니다.

+0

@ user1574054 : 제 편집장을 참조하십시오. 도움이되기를 바랍니다. –