app.config文件是否支持从更高层调用?

时间:2012-06-15 14:56:34

标签: c# .net

我为第三方应用程序编写扩展。该应用程序调用我的类库。当从另一个程序调用时,我无法让我的程序集从他们的app.config数据中读取。下面通过单元测试再现了问题。

ConsoleApplication.exe中的App.config

<appSettings>
    <add key="testKey" value="testvalue" />
</appSettings>

    static void Main(string[] args)
    {
        TestClass c = new TestClass();
        c.Run();
    }

    //TestClass.Run()
    public void Run()
    {
        var readAppConfig = ConfigurationManager.AppSettings[0];
        MessageBox.Show("App config: " + readAppConfig);
    }

单元测试代码,MSTEST

    [TestMethod]
    public void TestAppConfig()
    {
        TestClass c = new TestClass();
        c.Run();//fails here
    }

Main()有效,TestAppConfig()失败并出现ArgumentOutOfRangeException

  

指数超出范围。必须是非负数且小于   集合。

从外部程序集调用时,App.config是否停止工作?

1 个答案:

答案 0 :(得分:0)

应用设置必须位于最高级别的组件中(在这种情况下,您的MSTEST app.config需要保留设置。