4
インターフェイスが他のインターフェイスを拡張する必要があります(そうすることでメソッドを継承します)
これは一般的な質問ですが、私が現在経験している問題にも固有のものです。現在、ソリューションに指定されているインターフェイスがあります public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } このインターフェイスはプログラム全体でよく使用されるため、必要なオブジェクトに簡単にアクセスできます。しかし、プログラムの一部のかなり低いレベルでは、IAreaContextを使用し、それからいくつかの操作を実行する別のクラスにアクセスする必要があります。そこで、この作成を行うための別のファクトリインターフェイスを作成しました。 public interface IEventContextFactory { IEventContext CreateEventContext(int eventId); } IContextProviderを実装し、NinJectを使用して注入されるクラスがあります。私が抱えている問題は、このIEventContextFactoryを使用する必要がある領域がIContextProviderにのみアクセスでき、それ自体がこの新しいインターフェイスを必要とする別のクラスを使用することです。IEventContextFactoryのこの実装を低レベルでインスタンス化する必要はなく、むしろIEventContextFactoryインターフェース全体で動作します。ただし、コンストラクタを介して別のパラメータを挿入する必要はありません。それを必要とするクラスに渡すだけです。つまり、 // example of problem public class MyClass { public MyClass(IContextProvider context, IEventContextFactory event) { _context = context; _event = event; } public void DoSomething() …
13
c#
design
interfaces