2016-07-29 4 views
0

プロジェクトでは、プロジェクトで参照されるときにうまく動作するカスタムコンフィグレーションセクションを定義しました。今我々は参照として追加されたdllからこの同じ設定セクションを参照しようとしています。このDLLのコードから、ConfigurationManager.AppSettingsには問題なくアクセスできますが、設定エントリにアクセスするとエラーが発生します。構成セクションを取得しようとしたとき、それは次のエラーを投げている参照しているDLL内DLLリファレンスからカスタムコンフィグレーションセクションをロードする

のWeb.configコード

<section name="mailManager" type="FullNamespace, NameSpace" /> 

<mailManager prop1="propVal1"> 
    <prop2 key1="keyVal1" key2="keyVal2" key3="keyVal3" /> 
    <prop3 key1="keyVal1" key2="keyVal2" /> 
</mailManager> 

。このセクションは、dllとメインソリューションコードベースの両方のソリューションに存在します。

var mailManagerConfigSection = ConfigurationManager.GetSection("mailManager") as EmailManagerConfigSection; 

我々が得るエラーはエラーCS0433です:型 'EmailManagerConfigSection' 'はnamespace1、= 1.0.0.0バージョン、カルチャニュートラル、PublicKeyToken = = null' と「namespace2、バージョン= 1.0.0.0の両方に存在します、Culture =ニュートラル、PublicKeyToken = null '。

dll参照は、メインコードが実行されているのと同じbinディレクトリにあります。とにかくdllには、nullであるdllにローカルなものではなく、値を持つメインのEmailManagerConfigSectionを参照する必要がありますか? dll.configファイルは導入したくありません。

答えて

1

構成セクションは、DLLではなく、実行可能ファイルから定義、ロード、および参照する必要があります。

それはDLLを参照する(あなたはあなたの解空間にDLLプロジェクトで設定ファイルのソースコードを維持することができますが、DLLのコンパイルには、設定ファイルを置くところはどこでも、ホスト実行可能のためのapp.config app.config [ApplicationName.Exe.config]適切な<ConfigSections><section>要素と実際のセクション要素をホスト実行可能ファイルapp.configに追加するだけです。

+0

ConfigurationManager.AppSettings ["asVal"]がエントリを取得しているのを見てチャールズさんに感謝します。そういうことができることを期待していましたが、なぜそれが不可能なのか理解できます。あなたの時間を感謝します。 –

+0

問題なし、お手伝いしてうれしい! –

関連する問題