繁体   English   中英

获取Windows 8 C#中的所有程序集列表?

[英]Get all list of assemblies in Windows 8 C#?

相当于Windows 8中的AppDomain.CurrentDomain.GetAssemblies()中的Assembly a。

我的目标是从Windows 8项目中的不同项目加载所有模板控件。 所以我试图首先加载当前解决方案中的所有程序集,然后从中获取控件?

Windows Store应用程序中没有确切的等效项,原因很简单:这些应用程序以包的形式分发,无法使用插件扩展它们,即在部署应用程序时,您确切知道应用程序包含哪些程序集。

要分发程序集(包含在项目中),首先需要从主项目中引用它们。 然后,您可以使用以下代码迭代程序包安装位置中的所有程序集,加载它们并遍历其类型(在生产中使用此代码之前,应添加一些异常处理):

var folder = Package.Current.InstalledLocation;
foreach (var file in await folder.GetFilesAsync())
{
    if (file.FileType == ".dll")
    {
        var assemblyName = new AssemblyName(file.DisplayName);
        var assembly = Assembly.Load(assemblyName);
        foreach (var type in assembly.ExportedTypes)
        {
            // check type and do something with it
        }
    }
}

在内部循环中,您可以检查该类型的某些属性,以识别它们中的哪些是您正在寻找的控件,并且无论您需要什么,都可以使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM