如果我没有在标题中正确询问,我会道歉...我不知道如何询问或者要求我做什么。
- 假设我有一个名为“TestApp”的简单应用程序,用C#编写。
在该应用程序中,我有下一个变量:
int clientid = 123;
string apiurl = "http://somesite/TestApp/api.php";
当我有一个新客户端时,我需要为他创建一个新的特殊TestApp.exe,更改代码中的'clientid'变量。
这个过程可以自动化吗?要自动更改该变量并导出exe而不让我干扰该过程?
-
我问这个是因为我认为/或者我确信这是可能的,因为下一个流行的例子:
如果我没有正确地问我的问题而且我的英语不好,我会道歉,我会尽力而为。
答案 0 :(得分:3)
所以你的问题分为两部分:
进行自定义设置:
使用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
类来编写配置文件。 以编程方式编写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);
}