日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

如何讓ConfigurationManager打開任意的配置文件

系統 2025 0

引用:

http://www.cnblogs.com/jiangnii/archive/2010/04/19/1715532.html

VisualStudio的配置文件很好很強大,用來保存數據庫連接字符串或鍵值對都非常方便,只需要通過 ConfigurationManager的ConnectionStrings或AppSettings屬性就可以隨時取用。但 ConfigurationManager打開的是工程的默認配置文件,而我有時候會有這樣的需求:工程A通過某種方式引用了工程B,A和B都有各自的一 些配置,我不想把B的配置寫到A的配置文件里,而是希望B也有自己的配置文件。運行時程序從A啟動,那我怎么樣才能讓 ConfigurationManager能正確訪問到B的配置文件呢?

?

翻翻ConfigurationManager的簽名,有一個方法吸引了我的注意:OpenExeConfiguration(string exePath)。看上去我可以把B工程的配置文件路徑作為參數傳遞到這個方法,執行后會返回一個Configuration對象,之后我就可以順利的訪 問其中的配置信息了

?

可惜現實是殘酷的,OpenExeConfiguration實在是一個古怪的方法,我發現成功調用需要滿足幾個雷人的條件:

1、參數exePath必須是 *.exe?或 *.config 的格式(可能還有其他格式,但 *.dll 肯定不行)

2、exePath對應的文件必須存在(例如 exePath = "C:/ProjectB.exe",那C盤下必須要有一個名為ProjectB.exe的文件),但實際上這個文件一點用也沒有

3、方法調用后最終打開的配置文件實際上名為 exePath + ".config" (所以 exePath = "C:/ProjectB.exe" 時配置文件就是?C:/ProjectB.exe.config,而 *.config 的配置文件就得叫 *.config.config)

?

可能是微軟工程師另有打算,也可能這個方法不是我想象中這樣用的,總之上述幾個條件真的讓我望而卻步了。要是每次總得在目錄下添加一個空白文本,把 名字取好后綴改為.exe,再把實際的配置文件的后綴改為.exe.config。。。這個OpenExeConfiguration恐怕不會讓我更方 便,只會讓我更糾結。。

?

ConfigurationManager還有幾個類似的方法,但我不知道怎么用,于是遍尋Google和MSDN。終于發現了真正能解決我問題的方法:OpenMappedExeConfiguration

?

不多說,直接上代碼了:

?

string ?configPath? = ?...;

ExeConfigurationFileMap?map?
= ? new ?ExeConfigurationFileMap();
map.ExeConfigFilename?
= ?configPath;

config?
= ?ConfigurationManager.OpenMappedExeConfiguration(map,?ConfigurationUserLevel.None);

?

如何讓ConfigurationManager打開任意的配置文件


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 台南县| 鱼台县| 从化市| 秦安县| 濮阳市| 柳河县| 连平县| 社会| 彩票| 体育| 封丘县| 博兴县| 崇仁县| 麻城市| 綦江县| 平邑县| 会同县| 深泽县| 岳阳市| 屏东市| 平陆县| 改则县| 玉田县| 邹城市| 平塘县| 开原市| 平泉县| 鄢陵县| 北安市| 岢岚县| 镇平县| 沙坪坝区| 九江县| 新余市| 吉林省| 康乐县| 浦东新区| 万州区| 邮箱| 弋阳县| 鲜城|