C# 类库C中的应用程序配置#
我有一个wpf应用程序,它使用类库的dll。我无法访问类库中的app.config值 我尝试访问app.config的方式:C# 类库C中的应用程序配置#,c#,wpf,C#,Wpf,我有一个wpf应用程序,它使用类库的dll。我无法访问类库中的app.config值 我尝试访问app.config的方式: ConfigurationSettings.AppSettings["conStr"].ToString(); 这将返回一个空值 还添加了使用System.Configuration。为什么不将该值放在主项目中呢 如果从主项目调用类库。然后类库中的代码使用主项目中定义的AppConfig 通常的做法是将连接字符串放在主项目的AppConfig中,而不是放在类库中。try
ConfigurationSettings.AppSettings["conStr"].ToString();
这将返回一个空值
还添加了使用System.Configuration。为什么不将该值放在主项目中呢 如果从主项目调用类库。然后类库中的代码使用主项目中定义的AppConfig 通常的做法是将连接字符串放在主项目的AppConfig中,而不是放在类库中。try
ConfigurationManager.AppSettings["conStr"].ToString();
如果无法使用,请发布您的App.Config
已过时我建议使用您自己的类来保存类库设置。大概是这样的:
public class GlobalSettings
{
public double RedFiber { get; set; }
public double GreenFiber { get; set; }
public double BlueFiber { get; set; }
public bool DeleteMinorViews { get; set; }
public static GlobalSettings Load()
{
try
{
return JsonConvert.DeserializeObject<GlobalSettings>(File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\YOUR_APP_NAME\\"));
}
catch ()
{
return DefaultSettings;
}
}
public void Save()
{
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\YOUR_APP_NAME\\", JsonConvert.SerializeObject(this, Formatting.Indented));
}
private static readonly GlobalSettings DefaultSettings = new GlobalSettings()
{
RedFiber = 0,
GreenFiber = 255,
BlueFiber = 0,
DeleteMinorViews = true,
};
}
公共类全局设置
{
公共双RedFiber{get;set;}
公共双绿色光纤{get;set;}
公共双蓝光纤{get;set;}
公共bool DeleteMinorViews{get;set;}
公共静态全局设置加载()
{
尝试
{
返回JsonConvert.DeserializeObject(File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+“\\YOUR\u APP\u NAME\”);
}
捕获()
{
返回默认设置;
}
}
公共作废保存()
{
File.writealText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+“\\YOUR\u APP\u NAME\\”,JsonConvert.SerializedObject(这是格式化.Indented));
}
私有静态只读GlobalSettings DefaultSettings=new GlobalSettings()
{
RedFiber=0,
绿色纤维=255,
蓝色纤维=0,
DeleteMinorViews=true,
};
}
我也有同样的问题。尝试为类库添加设置文件以存储值。该值将存储在app.config中,但可使用设置文件进行访问
这篇文章更好地解释了:
这篇文章详细介绍了设置文件:
如果您不想执行上述操作,也可以将数据移动到主项目App.config文件中,该文件应能正常工作。是否有任何理由不通过库定义的公共类公开相关属性?