是否可以将web.config中的App设置“string”传递给Common C#类?
答案 0 :(得分:10)
在任何类中,您都可以使用ConfigurationManager.AppSettings["KeyToSetting"]
访问web.config(或app.config)元素中的任何值
答案 1 :(得分:8)
当然这是可能的 - 但要记住的是,正确设计的类(除非它是为ASP.NET明确设计的)不应该知道或关心信息来自何处。应该有一个属性(或方法,但属性是更多'做事的'.NET方式),你用应用程序本身的字符串值设置,而不是让类直接从web.config获取信息。
答案 2 :(得分:0)
如果您有许多地方使用的配置值,请考虑开发一个Configuration类,它抽象配置项的实际加载,并提供强类型值和转换,以及可能的默认值。
这种技术本地化了对配置文件的访问,以便以后轻松切换实现(比如在注册表中存储),并使其只需要从文件中读取一次 - 尽管我希望配置manager也将以这种方式实现,并在第一次使用时读取所有值,并在后续访问时从内部存储中提供它们。我认为真正的好处是强打字和一次性转换。
public static class ApplicationConfiguration
{
private static DateTime myEpoch;
public static DateTime Epoch
{
get
{
if (myEpoch == null)
{
string startEpoch = ConfigurationManager.AppSettings["Epoch"];
if (string.IsNullOrEmpty(startEpoch))
{
myEpoch = new DateTime(1970,1,1);
}
else
{
myEpoch = DateTime.Parse(startEpoch);
}
}
return myEpoch;
}
}
}