1

MyNamespace.MyTypeロードされたアセンブリにあることがわかっているような完全修飾名を含む文字列があります。

TypeWindows ストア アプリで、このインスタンスを取得する必要があります。

私が抱えている問題は、Windows ストア アプリにはいくつかのリフレクション クラスがありますが、非常に制限されており、デスクトップ アプリに使用していたものを使用できないことです。

アセンブリを取得できれば、その中に自分の型を見つけることができるので、現在、読み込まれたすべてのアセンブリを取得しようとしていますが、存在しないため簡単には実行できAppDomainません。

私は以下を見つけました:

private async System.Threading.Tasks.Task<IEnumerable<Assembly>> GetAssembliesCore()
{
    var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;

    List<Assembly> assemblies = new List<Assembly>();
    foreach (Windows.Storage.StorageFile file in
                 await folder.GetFilesAsync().AsTask().ConfigureAwait(false))
    {
        if (file.FileType == ".dll")
        {
            AssemblyName name = new AssemblyName() { Name = file.Name };
            Assembly asm = Assembly.Load(name);
            assemblies.Add(asm);
        }
    }

    return assemblies;
}

ハングを止めるために を追加しました.AsTask().ConfigureAwait(false)が、アセンブリのロードに失敗しました:

"ファイルまたはアセンブリ 'FDE.Audio.dll' またはその依存関係の 1 つを読み込めませんでし
た。指定されたファイルが見つかりません。":"FDE.Audio.dll"

マニフェストで設定する必要があるものはありますか? 他の何か?

プログラムのフォルダーにアセンブリをロードするにはどうすればよいAppXですか (と思います)。

4

1 に答える 1