访问另一个项目的app.config属性?

时间:2014-04-01 12:12:29

标签: c# configuration app-config configurationmanager

我的解决方案中有两个项目,本例中我将其称为项目A和B.

项目B引用A.项目B可以访问项目A的app.config属性吗?

我想访问A。的app.config中的app键字符串。

string tfsUri = ConfigurationManager.AppSettings["TfsUri"];

2 个答案:

答案 0 :(得分:18)

这通常不是一个好主意,因为你在项目之间引入了硬依赖关系。因此,如果您可以复制粘贴配置值,那将使您的项目自包含(但是,这会引入配置值的重复)。

您也可以自动执行此操作,以便在构建项目时自动解析配置依赖项。

说过这个,还有其他选择,在每种情况下你可能更喜欢使用别的东西。您的其他选择是:

答案 1 :(得分:5)

       var path = @"C:\Users\Stephen\source\repos\SensurityConfigurationTool\Configuration.UI\App.config";
        string directory = Path.GetDirectoryName(path);
        var pathRoot = Path.GetPathRoot(directory);
        string file = Path.GetFileName(path);


        ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap
        {
            ExeConfigFilename = Path.Combine(Path.GetFullPath(directory + "\\" + file))
        };

        System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

您基本上获得相对路径,然后将其转换为绝对路径