我有一个模块化的应用程序,其中每个模块都是它自己的项目。然后可以将每个模块打包成一个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文件,但我想知道是否有更好的解决方案。
很抱歉,如果我没有清楚解释这一点。我真的很感激任何帮助。感谢
答案 0 :(得分: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();
...
}
}