所以这对我来说是新的。

我试图在我的类库中定义一个ConfigurationSection类,该类从WinForms应用程序的App.Config中提取。我以前从未做过此事,但是从下面的示例开始,这是我必须要做的。

我的WinForms应用中的app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="ReportEngineConfig" type="Optima.ReportEngine.ReportEngineConfig" allowDefinition="Everywhere" allowLocation="true"/>
  </configSections>

  <ReportEngineConfig>
    <ReportObjectVariableRegEx value="test" ></ReportObjectVariableRegEx>
  </ReportEngineConfig>
</configuration>


而我的ConfigurationSection类在我单独的类库中。

使用System.Configuration;

namespace Optima.ReportEngine
{
    public class ReportEngineConfig : ConfigurationSection
    {
        [ConfigurationProperty("ReportObjectVariableRegEx")]
        public string ReportObjectVariableRegEx
        {
            get
            {
                return (string)this["value"];
            }
        }

    }
}


所以任何人都可以指出我哪里出了问题

谢谢!

最佳答案

您的类型标记需要引用程序集名称,而不仅仅是类型名称:

type="Optima.ReportEngine.ReportEngineConfig, Optima.ReportEngineAssembly"


逗号后的部分是包含ReportEngineConfig的程序集的名称。您还必须确保使用此app.config的应用程序引用了包含ReportEngineConfig的同一程序集。

您也可以摆脱allowDefinition和allowLocation标记...将默认值放入其中。

关于c# - 如何定义ConfigurationSection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2333422/

10-11 13:42