在我的項目中,我需要存儲複雜的應用程序設置,我不想將它存儲在數據庫中。asp.net中的自定義配置文件
應用程序設置都可以通過管理界面編輯/轉換等
所以,如果我在配置存儲設置,每當configugration改變時,應用程序重新啓動。
所以第二個想法是從項目中存儲的文件(例如「AppSettings.conf」)中加載外部文件。
問題很簡單:是否可以從外部文件加載並保存設置而無需重新啓動應用程序?
感謝
在我的項目中,我需要存儲複雜的應用程序設置,我不想將它存儲在數據庫中。asp.net中的自定義配置文件
應用程序設置都可以通過管理界面編輯/轉換等
所以,如果我在配置存儲設置,每當configugration改變時,應用程序重新啓動。
所以第二個想法是從項目中存儲的文件(例如「AppSettings.conf」)中加載外部文件。
問題很簡單:是否可以從外部文件加載並保存設置而無需重新啓動應用程序?
感謝
最後決定在db中保存/加載應用程序設置。
是,存儲在XML文件中的設置,並且可以讀/從XML文件就好寫入/。但是,您不能將存儲在web.config中的任何現有組件(如<authentication>
或<authorization>
元素)指向該XML文件,這將不起作用。只有你的自定義設置會。
HTH。
而不是創建一個自定義配置文件,創建自定義配置節在web.config:
這裏只是一個例子:
public class SomeConfigurationSection: ConfigurationSection
{
[ConfigurationProperty("configurationData")]
public string ConfigurationData
{
get
{
return this["configurationData"] as string;
}
set
{
this["configurationData"] = value;
}
}
[ConfigurationProperty("otherConfigurationData")]
public int OtherConfigurationData
{
get
{
return Convert.ToInt32(this["otherConfigurationData"]);
}
set
{
this["otherConfigurationData"] = value;
}
}
}
編輯
另一種可能的解決辦法在Properties文件夾下使用Settings.setttings
文件。我相信你可以在這裏添加,編輯和刪除設置,而無需重新啓動應用程序:
//add a setting
Properties.Settings.Default.Context.Add("foo", "bar");
//edit a setting
Properties.Settings.Default.Context["foo"] = "bar";
//remove a setting
Properties.Settings.Default.Context.Remove("foo");
您可以Properties
文件夾下訪問該文件,或在Web應用程序(屬性>設置)的屬性窗口。
感謝您的回答,但自定義網頁配置部分與運行時的經典編輯網頁配置有相同的問題... – Mennion
Gotcha。用另一個想法修改了我的答案。 –
您確定應用程序重新啓動嗎? –
答案很簡單,你可以做任何你想要的東西,而不是使用'ConfigurationManager.AppSettings',你可以編寫自己的幫助類,讀/寫XML文件,你可以放在任何你想要的地方。 我仍然更喜歡數據庫,因爲我們有不同的環境,如Dev,QA,Prod等,並且在每個環境中設置都不同,我不想冒着在部署新版本時覆蓋本地文件的風險。 –
@SaeedNeamati是的,web.config中的任何動態更改都是在重新啓動應用程序之後進行的。 – Mennion