2013-10-01 39 views
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文件,但我想知道是否有更好的解決方案。

對不起,如果我沒有解釋清楚。我非常感謝任何幫助。謝謝

+1

我會去嵌入太。 – Surfbutler

+0

謝謝你是我傾斜的方式。這是我已經做的在模塊中抓取圖像的方法。然而,我只是想知道它是否應該被區別對待,因爲它是一個.config文件。 – nfplee

+0

嗯,我猜你可以嘗試將每個模塊的script.config文件添加到主應用程序,但使用「添加爲鏈接」而不是添加,但我沒有用配置文件嘗試自己。 – Surfbutler

回答

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(); 
     ... 
    } 
}