2

だからこれは私にとって新しいものです。

WinForms アプリの App.Config から取得するクラス ライブラリで ConfigurationSection クラスを定義しようとしています。これまでにこれを行ったことはありませんが、次の例から、これは私がしなければならないところです。

私の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"];
            }
        }

    }
}

だから、誰かが私が間違っているところを指摘できるチャンスがあれば

ありがとう!

4

1 に答える 1

3

型タグは、型名だけでなく、アセンブリ名を参照する必要があります。

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

コンマの後のセクションは、ReportEngineConfig を含むアセンブリの名前です。また、この app.config を使用しているアプリケーションが ReportEngineConfig を含む同じアセンブリを参照していることを確認する必要があります。

また、allowDefinition および allowLocation タグを取り除くこともできます...デフォルトを入れました。

于 2010-02-25T11:04:02.917 に答える