1

我有一个模块化应用程序,其中每个模块都是它自己的项目。然后可以将每个模块打包到单个 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 文件,但我想知道是否有更好的解决方案。

对不起,如果我没有解释清楚。我真的很感激任何帮助。谢谢

4

1 回答 1

0

我认为嵌入资源是最好的方法。我只需获取所需的程序集,然后为每个程序集使用以下代码来检索 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();
        ...
    }
}
于 2013-10-04T23:31:13.150 回答