我的dll类库中有以下方法
private void Download(string filename)
{
//am calling this value from appconfig
string ftpserverIp = System.Configuration.ConfigurationManager.AppSettings["ServerAddress"];
// somecode to download the file
}
Private void Upload(string filename)
{
string ftpserverIp = System.Configuration.ConfigurationManager.AppSettings["ServerAddress"];
// somecode to upload the file
}
就像我从appconfig获取所有方法的所有值一样,这是调用appconfig值的有效方法吗?
答案 0 :(得分:1)
运行时不会太昂贵。
然而,维护代码将是一个维护问题。也许财产是有益的。
private string ServerAddress
{
get { return System.Configuration.ConfigurationManager.AppSettings["ServerAddress"]; }
}
private void Download(string filename)
{
// Use ServerAddress
// somecode to download the file
}
Private void Upload(string filename)
{
// somecode to upload the file
}
下一个合乎逻辑的步骤是编写自定义配置部分。
答案 1 :(得分:1)
私人傻瓜如何节省打字/复制'n'pasting:
private string FtpServerIp
{
get
{
return ConfigurationManager.AppSettings["ServerAddress"];
}
}
答案 2 :(得分:1)
这是访问配置文件的AppSettings
部分的首选方式。如果您担心单元测试目的,您可以从父容器或类中的配置中注入这些值,然后您可以使用值进行测试。或者您可以在单元测试项目中使用单独的配置。
答案 3 :(得分:1)
我通常会在配置的appsettings部分为所有项目创建一个类,例如
public class ConfigSettings
{
public static string ServerAddress
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["ServerAddress"];
}
}
public static string OtherSetting
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["OtherSetting"];
}
}
}
然后使用它:
string address = ConfigSettings.ServerAddress;
答案 4 :(得分:0)
AppSettings被缓存 - 因此以这种方式调用它们是有效的。