类库C#中的App配置

时间:2016-07-23 18:12:49

标签: c# wpf

我有一个使用类库的DLL的wpf应用程序。我无法访问类库中的app.config值

我是如何尝试访问app.config的:

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

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

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

这篇文章更好地解释了:Can a class library have an App.config file?

这篇文章详细介绍了设置文件:Best practice to save application settings in a Windows Forms Application

如果您不想执行上述操作,还可以将数据移动到主项目App.config文件中,它应该可以正常工作。

答案 3 :(得分:-3)

{{1}}

如果无法发布您的App.Config

ConfigurationSettings.AppSettings已过时