2010-12-16 1 views
1

Wpf에서 지역화를 위해 어셈블리의 모든 ResourceManagers를 반복하고 싶습니다.어셈블리의 모든 ResourceManager 검색

내가 이것을하고 싶은 이유는 번역 xaml 마크 업 확장이 있기 때문입니다. 이 마크 업 확장은 완전한 네임 스페이스와 어셈블리 이름을 사용하여 ResourceManager를 인스턴스화해야합니다.

기본 어셈블리는 다음과 같이 XAML 파일이있는 검색 할 수 있습니다 위치한 조립입니다 :

기본 경로가 앞에 추가 할 필요가 상대 경로를 제공하지만, 이것은 VS입니다
var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider; 
var root = rootObjectProvider.RootObject; 
var assembly = ass = Assembly.GetAssembly(root.GetType()); 

조립 물건이 아니라. 대부분의 어셈블리는 기본 네임 스페이스와 이름이 같지만 항상 그런 것은 아닙니다. 따라서 어셈블리의 모든 ResourceManager를 반복하고 네임 스페이스의 마지막 부분을 태그 확장에 지정된 사전 경로와 일치 시키려고합니다.

var resources = assembly.GetManifestResourceNames(); 

동작은하지만 매우 비용이 많이 드는 것, 다음 도전 :

답변

0

이 좋아, 내가 그것을 할 방법을 발견 ResourceDictionary에있는 ResourceManager에로드를 ..