Wpf でのローカリゼーションの目的で、アセンブリ内のすべての ResourceManager をループしたいと考えています。
これを実行したい理由は、翻訳用の xaml マークアップ拡張機能があるからです。このマークアップ拡張機能は、完全修飾名前空間とアセンブリ名を使用して ResourceManager をインスタンス化する必要があります。
既定のアセンブリは、次のように取得できる xaml ファイルが配置されているアセンブリです。
var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
var assembly = ass = Assembly.GetAssembly(root.GetType());
相対パスを指定する場合、デフォルト パスを先頭に追加する必要がありますが、これはアセンブリではなく VS の問題です。ほとんどのアセンブリは既定の名前空間と同じ名前ですが、常にそうであるとは限りません。そのため、Assembly 内のすべての ResourceManager をループして、名前空間の最後の部分を、マークアップ拡張機能に指定されたディクショナリ パスと一致させたいと考えています。