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

C# 类库C中的应用程序配置#,c#,wpf,C#,Wpf,我有一个wpf应用程序,它使用类库的dll。我无法访问类库中的app.config值 我尝试访问app.config的方式: ConfigurationSettings.AppSettings["conStr"].ToString(); 这将返回一个空值 还添加了使用System.Configuration。为什么不将该值放在主项目中呢 如果从主项目调用类库。然后类库中的代码使用主项目中定义的AppConfig 通常的做法是将连接字符串放在主项目的AppConfig中,而不是放在类库中。try

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

我尝试访问app.config的方式:

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文件中,该文件应能正常工作。

是否有任何理由不通过库定义的公共类公开相关属性?