所以,你有兩個部分,以你的問題:
- 你想擁有基於客戶端程序中的變量爲您的應用程序
- 要自動進行設置更改的過程。
爲使自定義設置:
使用AppSettings
。
首先,爲System.Configuration
組件添加引用。
在您的app.config文件:
<configuration>
<appSettings>
<add key="ClientID" value="123" />
<add key="ApiUrl" value="http://somesite/TestApp/api.php" />
</appSettings>
</configuration>
在你的代碼,閱讀設置:
using System;
using System.Configuration;
class Program
{
private static int clientID;
private static string apiUrl;
static void Main(string[] args)
{
// Try to get clientID - example that this is a required field
if (!int.TryParse(ConfigurationManager.AppSettings["ClientID"], out clientID))
throw new Exception("ClientID in appSettings missing or not an number");
// Get apiUrl - example that this isn't a required field; you can
// add string.IsNullOrEmpty() checking as needed
apiUrl = ConfigurationManager.AppSettings["apiUrl"];
Console.WriteLine(clientID);
Console.WriteLine(apiUrl);
Console.ReadKey();
}
}
More about AppSettings on MSDN
要自動設置的創建:
這一切都取決於你想要得到多麼複雜。
- 當你建立你的項目,你的
app.config
文件將成爲TestApp.exe.config
- 您可以使用
ConfigurationManager
類寫配置文件。
- 此外,您可以編寫一個小型的Exe文件,它將配置文件寫入自定義設置,並將其作爲構建操作的一部分執行。很多方法可以實現自動化,這取決於您打算如何部署應用程序。
編程寫的app.config文件appSettings部分的一個簡單的例子:
public static void CreateOtherAppSettings()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration("OtherApp.config");
config.AppSettings.Settings.Add("ClientID", "456");
config.AppSettings.Settings.Add("ApiUrl", "http://some.other.api/url");
config.Save(ConfigurationSaveMode.Modified);
}
感謝您的快速答覆。但是,我怎麼實際上可以部署應用程序,因爲它是一個獨立的.exe,它有可能在exe文件中自動嵌入user.config? – user3280998
你不會將它嵌入到exe文件中 - 它總是一個單獨的配置文件。您可以爲每個部署生成配置文件,我已經更新了我的答案並正在處理一個示例。 –
@ user3280998:以示例查看更新的答案。這應該足以讓你運行它並找出如何最好地生成配置。我不知道你的項目顯然更具體,但我已經爲你提供了幾個選項和例子。 –