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

时间:2017-06-28 21:45:51

标签: c# .net uwp .net-assembly

我疯了找它!

我接近this post中的答案,但该包中没有DependencyContext.Default。

1 个答案:

答案 0 :(得分: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;
}

这个上有一些旧discussion(从那以后没有任何改变)。