类库C#中的应用程序配置

本文关键字:应用程序 配置 类库 | 更新日期: 2023-09-27 17:58:32

我有一个wpf应用程序,它正在使用类库的dll。我无法访问类库中的app.config值

我如何尝试访问app.config:

ConfigurationSettings.AppSettings["conStr"].ToString();

这将返回一个null值还添加了使用System.Configuration。

类库C#中的应用程序配置

为什么不把这个值放在主项目中?

如果您正在从主项目调用类库。然后类库中的代码使用在主项目中定义的AppConfig。

通常的做法是将连接字符串放在主项目的AppConfig中,而不是在类库中。

我建议使用您自己的类来保存类库设置。类似这样的东西:

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,
    };
}

我遇到了同样的问题。尝试为类库添加一个设置文件来存储您的值。该值将存储在app.config中,但使用设置文件进行访问。

这篇文章更好地解释了:类库可以有一个App.config文件吗?

这篇文章详细介绍了设置文件:在Windows窗体应用程序中保存应用程序设置的最佳实践

如果您不想执行上述操作,也可以将数据移动到主项目App.config文件中,这样就可以了。

尝试

ConfigurationManager.AppSettings["conStr"].ToString();

如果不起作用,张贴你的应用程序配置

ConfigurationSettings.AppSettings已过时