インタフェースの複数の実装をループする方法はありますか?私はDIフレームワークに基づいて提案を制限したくないので、DIコードの例は書いていません。 Autofac、Ninject、Unityなどがあります。タスクに適しているものは何でも。インタフェースの実装を反復する
私はASP.Netコアを使用していますが、DIの組み込みでは複数の実装ができないと考えています。
したがって、特異なインターフェイスです。
public interface InterfaceA
{
void MethodA();
}
前記インターフェースを実装し、登録されている多数のクラス。など、この
public TestContoller: Controller
{
private readonly List<InterfaceA> interfaces;
void TestController(List<InterfaceA> interfaces)
{
this.interfaces = interfaces;
}
IActionResult TestMethod()
{
Foreach(var implementation in interfaces)
{
implementation.MethodA();
}
return View();
}
}
あなたは同じ質問をされています(http://stackoverflow.com/questions/26733/getting-all-types-that-implement-an-interface)[インターフェースを実装するすべての型を取得]?そうでない場合、どこに問題があるのか説明できますか? – Sinatr
私は本当にそのタイプに興味がありません。私が与えたコード例は、私がやりたいことの仮説です。 DIフレームワークが私のように働くことができるかどうかわかりません。私はAutofacを使っているオーチャードCMS(Orchard CMS)のようなものを見たことがあります。だから多分問題は、私の仮説的な例のように働くことを可能にするDIフレームワークですか?もしそうなら、私はどのように私の実装を登録しますか? –
右、私は*「登録されています」のポイントを見逃しています。あなたはコレクションを持っています。なぜあなたはそれを繰り返すことができないのですか?あなたのコードはコンパイルされず、インスタンスを作成していないので、あなたの意図/問題は何か分かりません。私はDIフレームワークを使用していない、おそらくあなたの質問は、1つを知っているときにはっきりしている? – Sinatr