UWP中AppDomain.GetAssemblies()的等价性?

Sup*_*JMN 6 .net c# .net-assembly uwp

我疯了找它!

我在这篇文章中接近答案,但该包中没有DependencyContext.Default.

jas*_*son 5

没有什么等同的 - UWP/PCL不支持.

PCL不支持,因为库不知道所有程序集,直到它们被构建和打包,并不完全清楚为什么UWP不支持它.

这是你可以得到的最接近的东西(这将枚举你的包中的所有程序集):

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

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

   return assemblies;
}
Run Code Online (Sandbox Code Playgroud)

关于此的一些旧讨论(从那以后没有任何改变).