ASP.NETコアで複数の登録登録登録を解決する ASP.NET Core自体は、重要な区別によって区別できるのと同じインターフェイスの実装をサポートしていません。この制限を克服するために、開発者は工場モデルなどの代替方法に依存します。ただし、これらのソリューションは依存の増加につながり、依存の反転(DIP)の原則に違反する可能性があります。 より効果的な解決策は、共有委員会を使用して、重要な値を特定の実装にマッピングすることです。以下は具体的なステップです: 委託された声明:ServiceResolver サービス分析のために委員会を定義します。 サービス登録: in 、各特定の実装は一時的なサービスとして登録されています:IService ServiceResolver(string key) タイプへのタイプのマッピング: configure特定の実装にキー値を委託します: Startup.cs services.AddTransient(); services.AddTransient(); services.AddTransient(); サービスの使用: 登録する必要があるクラスに注入します。たとえば、 ServiceResolver services.AddTransient(serviceProvider => key => { switch (key) { case "A": return serviceProvider.GetService(); case "B": return serviceProvider.GetService(); case "C": return serviceProvider.GetService(); default: throw new KeyNotFoundException(); } });この方法は、より効果的な依存関係管理を実現し、DIPを順守するために、同じインターフェイスの複数の実装を登録および分析する柔軟な方法を提供します。 ASP.NETコアの構築された関数ではありませんが、共通のDIチャレンジに実行可能なソリューションを提供します。