C# 跨应用程序获取所有配置文件

C# 跨应用程序获取所有配置文件,c#,reflection,.net,C#,Reflection,.net,我有一个模块化的应用程序,其中每个模块都是它自己的项目。然后,可以将每个模块打包到单个dll中 我在项目根目录中为每个名为Scripts.config的模块添加了自己的自定义配置文件。我想知道是否有办法获取应用程序中的所有Scripts.config文件 以下代码用于获取特定类型的所有实现: private IList<Type> GetTypes<T>() { return BuildManager.GetReferencedAssemblies().Cast&

我有一个模块化的应用程序,其中每个模块都是它自己的项目。然后,可以将每个模块打包到单个dll中

我在项目根目录中为每个名为Scripts.config的模块添加了自己的自定义配置文件。我想知道是否有办法获取应用程序中的所有Scripts.config文件

以下代码用于获取特定类型的所有实现:

private IList<Type> GetTypes<T>() {
    return BuildManager.GetReferencedAssemblies().Cast<Assembly>().SelectMany(a => a.GetExportedTypes().Where(t => typeof(T).IsAssignableFrom(t) && !t.IsAbstract)).ToList();
}
我想我正在寻找等效的,但要得到所有的Script.config文件。我想我可以嵌入Scripts.config文件,但我想知道是否有更好的解决方案


对不起,我没有解释清楚。我真的很感激任何帮助。谢谢,因为我认为嵌入资源是最好的方式。我只需获取所需的程序集,然后对每个程序集使用以下代码来检索Scripts.config文件的内容

using (var stream = assembly.GetManifestResourceStream(assembly.GetManifestResourceNames().Single(n => n.EndsWith("Scripts.config")))) {
    using (var sr = new StreamReader(stream)) {
        var content = sr.ReadToEnd();
        ...
    }
}

我也喜欢嵌入。谢谢,这是我学习的方式。这就是我在模块中抓取图像所做的。但是我只是想知道是否应该区别对待它,因为它是一个.config文件。我想您可以尝试将每个模块的script.config文件添加到主应用程序中,但使用“添加为链接”而不是“添加”,但我自己在配置文件中没有尝试过。看起来嵌入是一种方法。我会把这件事留一段时间,以防有人有其他想法。