Application.LoadComponent(Object, Uri) Method

지정된 상대 위치에 있는 XAML 파일을 로드하고 XAML 파일의 루트 요소에 의해 지정된 개체의 인스턴스로 변환합니다.

구문


public static void LoadComponent(
  object component, 
  Uri resourceLocator
)

매개 변수

component

형식: System.Object [.NET] | Platform::Object [C++]

로드할 XAML 콘텐츠의 루트 요소와 형식이 같은 개체입니다.

resourceLocator

형식: System.Uri [.NET] | Windows::Foundation::Uri [C++]

로드할 리소스에 대한 URI(Uniform Resource Identifier) 경로를 설명하는 개체입니다.

설명

LoadComponent는 주로 인프라용입니다. LoadComponent를 XAML 페이지 및 해당 코드 숨김 페이지의 partial 클래스를 통합하는 생성된 InitializeComponent 논리의 일부로 볼 수 있습니다.

일부 경우, 결과적으로 응용 프로그램이 잘못된 XAML을 구문 분석하려고 시도했기 때문에 발생한 예외에 대한 호출 스택에서는 LoadComponent가 표시되기도 합니다. 이 경우에는 응용 프로그램이 LoadComponent 사용 방법을 변경하기 위해 수행할 수 있는 방법이 아무 것도 없으며, 문제를 해결하기 위해서는 XML 편집기에서 XAML 소스를 확인하고 수정해야 합니다. 스택 추적 메시지를 사용하면 로드되지 않은 XAML 파일을 확인할 수 있습니다. 병합된 리소스가 사용되었거나 여러 XAML 소스가 조합된 시나리오에서는 구문 분석이 실패한 페이지 수준의 XAML을 항상 명확하게 알 수 있지 않습니다.

XAML 콘텐츠 로드, 개체 트리 생성과 관련된 대부분의 앱 시나리오에서는 대신 XamlReader.Load를 사용해야 합니다.

Windows 8.1에서 리소스 로드 최적화

Windows 8.1부터는 앱 모델 및 Windows 런타임 XAML 파서에서 사용하는 리소스 로드 최적화가 있습니다. LoadComponentMergedDictionaries를 포함하여 XAML 파일로부터 오는 리소스 사전을 실제로 로드하기 위해 내부적으로 호출되었기 때문에 이 시나리오에 포함되었습니다. Windows 8의 경우 XAML 파서는 app.xaml에서 리소스를 로드하고 각 리소스를 시작에 포함되는 개체로 생성합니다. 이는 큰 사전이 있는 경우 그다지 효율적이지 않았습니다. 또한 세 개의 테마 모두에 필요한 항목은 해당 리소스에 포함되었으며 세 테마 중 두 개는 활성화되지 않습니다. Windows 8.1부터 XAML 파서는 특별히 요청된 경우에만 리소스를 만듭니다. 요청은 다른 리소스나 앱 또는 페이지 XAML에서 로드 시 발생할 수 있습니다. 이 파서 동작은 시작 시 앱 수준 사전을 읽는 데 걸리는 시간을 최소화하며, 대부분의 경우 첫 번째 앱 페이지가 더 빨리 로드될 수 있도록 합니다. 현재 비활성 상태인 다른 테마에 필요한 리소스는 사용자가 해당 테마를 활성 테마로 선택한 경우에만 로드됩니다. 이때 요청에 ThemeResource 태그 확장이 사용된 모든 리소스는 새로 활성화된 테마에 따라 다시 계산됩니다.

Windows 8 동작

Windows 8에는 위에서 설명한 최적화가 없었습니다. Application.Resources에 대한 ResourceDictionary는 시작 화면 이외의 페이지가 앱의 Window에 로드되기 전에 구문 분석을 마쳐야 합니다. 이로 인해 Windows 8.1용으로 앱 대상을 변경할 시기에 약간의 차이가 있을 수 있습니다. 앱이 더 빠르게 로드되지만 대상 재지정의 일환으로 앱 코드에서 변경한 다른 내용과 이 개선 사항을 분리할 수 없을 수도 있습니다. 최적화된 리소스 로드로 인해 타이밍이 변경되는 모습은 Application 개체, 컨버터 또는 기타 사용자 지정 클래스 등의 개체에서 파서가 생성자를 호출할 때 나타납니다. Windows 8에 대해 컴파일되었지만 Windows 8.1에서 실행하는 앱이 계속해서 Windows 8 동작을 사용합니다.

성능 및 XAML 리소스 팩터링에 대한 자세한 내용은 XAML 로드 최적화를 참조하십시오.

요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadata

Windows.winmd

참고 항목

Application
LoadComponent(Object, Uri, ComponentResourceLocation)

 

 

표시:
© 2014 Microsoft