インターフェイスの1つをIDisposableで拡張するか、インターフェイスを実装するクラスにIDisposableを実装するかをどのように判断できますか?
1つの特定の実装を除いて、外部リソースを破棄する必要のないインターフェイスがあります。私の選択肢は次のようです:
1)空のメソッドのみであっても、Disposeを実装するためにすべての実装を必要とするインターフェースにIDisposableを実装します。
-また-
2)IDisposableを、破棄する必要のあるリソースを持つクラスにのみ実装します。私のオブジェクトはファクトリから作成されているため、すべてのアップストリームコードがインターフェイスに対して機能するため、これにより「使用」で問題が発生します。インターフェイスはIDisposableにバインドされていないため、「using」はDisposeメソッドを認識しません。ただし、ファクトリの結果を実装にキャストすることはできます。しかし、それは消費者に実装を認識させ、インターフェースの目的を無効にします。
ベストプラクティスに関するアイデアはありますか?