在UWP中,AppDomain.GetAssemblies()的等价方法是什么?

6

我疯了,一直在找它!

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


1
也许这个链接可以帮到你。 - DdarkSideE
1个回答

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;
}

这里有一些关于此问题的旧讨论(自那时以来没有任何改变)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接