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

问题描述 投票:6回答:1

我疯了找它!

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

c# .net uwp .net-assembly
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;
}

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

© www.soinside.com 2019 - 2024. All rights reserved.