2016-09-19 11 views
4

私はIRuleというインタフェースと、このインタフェースを実装する複数のクラスを持っています。私は.NET Core依存性注入コンテナを使用して、IRuleのすべての実装をロードしたいので、すべての実装されたルールが必要です。.NETコア依存関係注入 - >インタフェースのすべての実装を取得

残念ながら私はこの作業を行うことはできません。私はコントローラの私のctorにIEnumerable<IRule>を注入することができますが、私はStartup.csにこの設定を登録する方法がわかりません。

+0

デフォルトのサービスコンテナを使用していますか? – Maarten

+0

[最小限の、完全で実証可能な例を提供してください](http://stackoverflow.com/help/mcve)これまでに何を試みましたか? –

答えて

7

すべてのIRuleの実装を1つずつ登録するだけです。 MS.Ext.DIライブラリはIEnumerable<T>としてそれを解決できます。

services.AddTransient<IRule, Rule1>(); 
services.AddTransient<IRule, Rule2>(); 
services.AddTransient<IRule, Rule3>(); 
services.AddTransient<IRule, Rule4>(); 
+0

ありがとうSteven! – Nik

+0

それは素晴らしいです! –

関連する問題