2

アプリケーションの名前を格納するアプリ構成で定義された appName という値があります。アプリケーションは、データベース トレース リスナーを介してデータベースにログを書き込みます。私がやろうとしているのは、アプリケーションに appName の値を取得させ、実行時に defaultCategory を同じ値に設定することです。既存のカテゴリの名前も appName の値に変更する必要があると思います。そのカテゴリの名前と defaultCategory への変更 (名前が変更されたもの) 以外には影響を与えたくありません。

設定セクションは次のとおりです。TESTING は、実行時に変更する値です。

<loggingConfiguration name="" tracingEnabled="true" defaultCategory="TESTING">

...

<categorySources>

 ...

 <add switchValue="All" name="TESTING">
  <listeners>
    <add name="Database Trace Listener" />
  </listeners>
 </add>
</categorySources> 

解決策/例を調べてみましたが、最も近いものにセクション全体を書き直したので、それは避けたいと思います。

4

1 に答える 1

1

Enterprise Library は、単一のアプリケーション ブロックに対して実行時のプログラム構成または設計時の宣言構成をサポートします。しかし、そのままでは、同じアプリケーション ブロックに対して 2 つのアプローチを簡単に混在させることはできません。

構成を変更して書き戻すという1つのアプローチについて言及しています。

別のアプローチは、実行時にすべての構成をプログラムで設定することです。

外部構成ファイル (実際の Enterprise Library 構成を指す app.config/web.config 内の FileConfigurationSource など) を使用する場合に機能する別の方法は、構成情報を読み込んでメモリ内で変更することです。外部構成ファイルを使用する理由は、構成情報を変更しようとしたときに読み取り専用の構成例外を回避するためです。

最後のアプローチは、記事Enterprise Library Programmatic Configurationで説明されています。

于 2013-01-04T06:37:48.520 に答える