IStructuredReaderファイルからいくつかの構造化データを読み取り、それをフォームに表示するというインターフェイスがあります。Sync()これには、実装時にユーザー指定のデータ パターンのデータをスキャンする というメンバーがあります。
の一部の実装にIStructuredReaderは、同期機能がありません。これらの実装はメソッドをスローNotImplementedExceptionしSync()ます。このメソッドが実装されていることを確認できるようにしたいので、そうでない場合はフォームのボタンを暗くすることができます。
これを行う方法はいくつか考えられますが、どれもぎこちなく複雑に思えます。
Syncメソッドを独自のインターフェイスに分離し、機能をサポートする実装のために継承し、リーダー オブジェクトをそれにキャストして機能を識別しようとします。を書き
NotImplementedAttribute、それでメンバーを装飾し、リフレクションを使用して属性の存在を確認します。HasSyncCapabilityインターフェイスにブール型のプロパティを追加します。
これが行われる標準的な方法はありますか?