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