2

これは実際のケースではなく、単純化された例にすぎないことに注意してください。

Log クラスがあり、そこからサブクラス化されて、ファイル ログと電子メール ログがあるとします。次に、次のような構成セクションが必要だとしましょう

   Logs>
     Log Type="file" fileName="log.txt" Verbosity="3"/>
     Log Type="email" emailAddress="email@server.com" Verbosity="1"/>
   /Logs>

現在、私は許可するソリューションを持っています

   Logs>
     Log Type="file" Verbosity="3"/>
     Log Type="email" Verbosity="1"/>
   /Logs>

しかし、fileName または emailAddress* (これは単なる例です) を追加しようとするとすぐにエラーが発生します。これは、基本ログ クラスの構成セクションに、サブログ タイプに固有の構成プロパティが含まれていないためです。これを達成する方法はありますか?

4

1 に答える 1

0

OnDeserializeUnrecognizedAttributeメソッドをオーバーライドして、値をある種のプロパティ バッグに格納できます。System アセンブリの System.Diagnostics.ListenerElement クラスを見ると、まさにそれが行われていることがわかります。そのためには、フレームワークのソースを入手するか、逆コンパイラを使用する必要があります。

于 2012-11-16T17:02:55.433 に答える