Heim > Artikel > Backend-Entwicklung > asp.net liest und ändert den Implementierungscode der Konfigurationsdatei
Fügen Sie die app.config-Datei zum Projekt hinzu:
Klicken Sie mit der rechten Maustaste auf den Projektnamen, wählen Sie „Hinzufügen“ → „Neues Element hinzufügen“ im Dialogfeld „Neues Element hinzufügen“. erscheint, wählen Sie „Anwendungskonfigurationsdatei hinzufügen“; wenn das Projekt noch keine Konfigurationsdatei hat, lautet der Standarddateiname „app.config“, klicken Sie auf „OK“. Die app.config-Datei, die in der Designeransicht angezeigt wird, ist:
b7fb1c986616c7c40c0535ea39670d25
f9d9f4a8f32d97f3ef0c10742ed31240 🎜>Nachdem das Projekt kompiliert wurde, werden unter der binDebuge-Datei zwei Konfigurationsdateien angezeigt (am Beispiel dieses Projekts), eine mit dem Namen „JxcManagement.EXE.config“ und die andere mit dem Namen „JxcManagement.vshost.exe.config“. Die erste Datei ist die tatsächlich vom Projekt verwendete Konfigurationsdatei. Während der Ausführung des Programms vorgenommene Änderungen werden hier gespeichert. Die zweite Datei ist die Synchronisierungsdatei des Originalcodes „app.config“, die während der Ausführung nicht auftritt Programm läuft.
2. Abschnitt „connectionStrings“:
Bitte beachten Sie: Wenn Ihre SQL-Version die 2005 Express-Version ist, lautet der Standardname der SQL-Server-Instanz „localhostSQLExpress“. Sie müssen den Satz „Data Source=localhost;“ ändern zu „Data Source=localhostSQLExpress;“ hinzufügen, fügen Sie keine Leerzeichen auf beiden Seiten des Gleichheitszeichens hinzu.
c2235e0bafc8fbd2a3abcfd0d09f5774
<connectionStrings> <clear /> <addname="conJxcBook" connectionString="Data Source=localhost;Initial Catalog=jxcbook;User ID=sa;password=********" providerName="System.Data.SqlClient" /> </connectionStrings>appSettings-Konfigurationsabschnitt ist die Konfiguration des gesamten Programms Benutzer, bitte verwenden Sie den Konfigurationsabschnitt „userSettings“ und die folgenden Konfigurationsschreibanforderungen.
f6d819379c89ba48f41613647a9d091e
<appSettings> <clear /> <addkey="userName"value="" /> <addkey="password"value="" /> <addkey="Department"value="" /> <addkey="returnValue"value="" /> <addkey="pwdPattern"value="" /> <addkey="userPattern"value="" /> </appSettings>App lesen und schreiben .config-Datei finden Sie im Online-Artikel: http://www.codeproject.com/csharp/ SystemConfiguration.asp mit dem Titel „Read/Write App.Config File with .NET 2.0“.
Bitte beachten Sie: Um den folgenden Code für den Zugriff auf die Datei app.config zu verwenden, müssen Sie zusätzlich zum Hinzufügen eines Verweises auf System.Configuration auch einen Verweis auf System.Configuration.dll im Projekt hinzufügen.
4.1 Lesen Sie den Abschnitt „connectionStrings-Konfiguration“
///<summary> ///依据连接串名字connectionName返回数据连接字符串 ///</summary> ///<param name="connectionName"></param> ///<returns></returns> private static string GetConnectionStringsConfig(string connectionName) { string connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString(); Console.WriteLine(connectionString); return connectionString; }4.3 Lesen Sie den Abschnitt „appStrings-Konfiguration“
///<summary> ///更新连接字符串 ///</summary> ///<param name="newName">连接字符串名称</param> ///<param name="newConString">连接字符串内容</param> ///<param name="newProviderName">数据提供程序名称</param> private static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName) { bool isModified = false; //记录该连接串是否已经存在 //如果要更改的连接串已经存在 if (ConfigurationManager.ConnectionStrings[newName] != null) { isModified = true; } //新建一个连接字符串实例 ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString, newProviderName); // 打开可执行的配置文件*.exe.config Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // 如果连接串已存在,首先删除它 if (isModified) { config.ConnectionStrings.ConnectionStrings.Remove(newName); } // 将新的连接串添加到配置文件中. config.ConnectionStrings.ConnectionStrings.Add(mySettings); // 保存对配置文件所作的更改 config.Save(ConfigurationSaveMode.Modified); // 强制重新载入配置文件的ConnectionStrings配置节 ConfigurationManager.RefreshSection("ConnectionStrings"); }4.4 Update Abschnitt zur Konfiguration von ConnectionStrings
///<summary> ///返回*.exe.config文件中appSettings配置节的value项 ///</summary> ///<param name="strKey"></param> ///<returns></returns> private static string GetAppConfig(string strKey) { foreach (string key in ConfigurationManager.AppSettings) { if (key == strKey) { return ConfigurationManager.AppSettings[strKey]; } } return null; }
///<summary> ///在*.exe.config文件中appSettings配置节增加一对键、值对 ///</summary> ///<param name="newKey"></param> ///<param name="newValue"></param> private static void UpdateAppConfig(string newKey, string newValue) { bool isModified = false; foreach (string key in ConfigurationManager.AppSettings) { if(key==newKey) { isModified = true; } } // Open App.Config of executable Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // You need to remove the old settings object before you can replace it if (isModified) { config.AppSettings.Settings.Remove(newKey); } // Add an Application Setting. config.AppSettings.Settings.Add(newKey,newValue); // Save the changes in App.config file. config.Save(ConfigurationSaveMode.Modified); // Force a reload of a changed section. ConfigurationManager.RefreshSection("appSettings"); }
/// <summary> /// 写入Key,Value 到XML文件 /// </summary> /// <param name="Key"></param> /// <param name="Value"></param> public static void SaveConfig(string Key,string Value) { XmlDocument doc = new XmlDocument(); //获得配置文件的全路径 string strFileName = AppDomain.CurrentDomain.BaseDirectory.ToString() + "App.config"; doc.Load(strFileName); //找出名称为“add”的所有元素 XmlNodeList nodes = doc.GetElementsByTagName("add"); for (int i = 0; i < nodes.Count; i++) { //获得将当前元素的key属性 XmlAttribute att = nodes[i].Attributes["key"]; //根据元素的第一个属性来判断当前的元素是不是目标元素 if (att.Value == Key) { //对目标元素中的第二个属性赋值 att = nodes[i].Attributes["value"]; att.Value = Value; break; } } //保存上面的修改 doc.Save(strFileName); }
Weitere Artikel zum Lesen und Ändern von Konfigurationsdatei-Implementierungscodes für asp.net finden Sie auf der chinesischen PHP-Website!