程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 關於配置文件權衡,.config VS .xml,.config.xml

關於配置文件權衡,.config VS .xml,.config.xml

編輯:C#入門知識

關於配置文件權衡,.config VS .xml,.config.xml


眾所周知,程序的靈活性有一部分就是“配”出來了。

 

當然,config文件從來就沒有讓.NET的同學輕松過,至少,我覺得很麻煩。

 

1.config

.NET的配置文件方便,其實最方便的是appSettings

<appSettings>
    <add key="apiKey" value = "8asdf9as9d2asd" />
</appSettings>

而自定義配置比較繁瑣,要熟悉.NET的配置文件體系,才能了然於胸。

當然,奉獻精神的人們提供了一個DSL傑作——ConfigurationSectionDesigner。

從某種程度上來說,我對.NET的自定義配置是矛盾的:

我喜歡它,因為嚴格,不可修改;

我不喜歡它,往往修改設計的時候,就比較麻煩,要該好多引用。

 

2.XML

XML很靈活,但我又懼怕其復雜的API,截止到使用Linq To Xml之前,我都一直抱著這種態度。

甚至多次想寫一個XMLHelper,結果每次看到一堆的定義和API,就傻了。

這裡,是Linq To Xml讓我改變了對XML的態度。

主要API:

1)加載一個文檔;

XDocument  doc = XDocument .Load(path);
或
XElement  doc = XElement .Load(path);

區別就是,XElement加載之後,當做一個元素;而XDocument(當做一個文檔)有一個典型的屬性——Root。

2)查找元素;

提供了良好的樹形API,給人很清晰的感覺。

doc.Elements("yourName") ;    //查找元素集合
doc.Element("yourName") ;    //查找單個元素

doc.Descendants("yourName");   //查找子孫元素

當然,後面加上Linq的擴展,Where,Select等Lambda方式,是很自然的事情。

3)修改元素,增加元素,刪除元素;

SetValue,Add,AddAfterSelf,AddBeforeSelf

RemoveAll

XElement root = new XElement("Categories",
        new XElement("Category",
            new XAttribute("CategoryID", "1"),
            new XElement("CategoryName", "Beverages"),
            new XElement("Description", "Soft drinks, coffees, teas, beers, and ales")
        )
    );
    root.Element("Category").Add(new XAttribute("AddDate", DateTime.Now.ToShortDateString()));
    root.Save(path);

 

xml文件的讀寫是如此地方便。

3.選擇

總體上來說,XML比config文件更加靈活。

在config應對各種復雜配置無力(修改代碼很無奈)時,我傾向於使用XML進行配置;

在配置很固定時,很簡單時,我很傾向使用config進行配置。

使用XML文件時,有個VS小提示——選中XML文件,右鍵,屬性,輸出目錄,選擇“始終復制”。


C#怎更改以config結尾的XML文件

app.config文件為應用程序的配置文件,操作此文件並不能按操作一般的XML文件那樣,而是需要C#提供的關於操作配置文件的類庫Configuration來操作.另外還要添加此應用(System.Configuration)才行:在vs右邊的文件列表裡解決方案上右擊,選中添加引用,在彈出的對話框裡選中System.Configuration添加即可.對於配置文件的修改,有些麻煩.下面的代碼希望能給你一點幫助: Configuration config=ConfigurationManager.OpenExeConfiguration("D:\\yeyun\\MyQQ\\MyQQ\\app.config");
AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
if (appSetting.Settings["key"] == null)
{
appSetting.Settings.Add("key", "net.tcp://192.168.1.101:1234");
}
else
{
appSetting.Settings["key"].Value = "hao";
}
ConnectionStringsSection conns = (ConnectionStringsSection)config.GetSection("connectionStrings");
if (conns.ConnectionStrings["name"] == null)
{
ConnectionStringSettings conn = new ConnectionStringSettings("name","dddd");
conns.ConnectionStrings.Add(conn);
}
config.Save();

上面分別是修改appSettings節點和connectionStrings節點
但是我沒有找到system.serviceModel這個節點,我用的是vs2005。不知道你用的是什麼版本
注:該配置文件不建議在程序運行時修改...
 

問下對於webxml文件與strutsconfig文件相關配置文件說明在struts-129-bin的什位置?

都在struts-blank.war裡面
用winrar解壓縮,得到一個空的web項目應用
這裡面所有的文檔都是空的
包括你需要的web.xml和struts-config.xml
如果找不到也許是你的struts包有問題,因為有些包裡面都是源代碼,我剛開始的時候不知道,在apache網站上下載了一個struts1.2.7的包,就是源碼的
至於你說的Configuring Applications
我也不懂,等待高人



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved