Mark Seemannが"Dependency Injection in .NET"を読んだ後、私は反パターンであるService Locatorから離れます。 the release notes on MVC 4を読めサービスロケータのアンチパターンを使用するMVC4はなぜですか?
私は、次を参照してください。
DependencyResolverによる制御(IOC)の改善された反転:Web APIを は今、さまざまな施設のインスタンスを取得するためにMVCの依存関係 リゾルバによって実装サービスロケータパターンを使用しています。
したがって、私は好奇心旺盛左とMicrosoftは、あなたが気にしないことを、実装の詳細だ2012年
+1フレームワークはアプリケーションとは異なるルールに従います。フレームワークコンテナに依存しない(フレームワークを使用したいアプリケーションがすでに別のコンテナを使用している場合)、通常はそれらのアプリケーションでDIの使用を強制したくない場合(DIを使用したくない場合まったく)。 –
私は、それがフレームワークなのでサービス・ロケータが適切であるという議論を買わない。はい、フレームワークはアプリケーションとは異なりますが、サービスロケータを使用せずにフレームワークを作成することは完全に可能です。 ASP.NET MVC 1と2、またはWCFほど複雑なものを見てください。 ASP.NET MVC 3+のDependencyResolverの問題点は、内部実装の詳細だけでなく、パブリック 'DIサポート'として公開され宣伝されていることです。 –
@ MarkSeemann大企業のフレームワークのチーフアーキテクトとこの議論がありました。このようなフレームワークコンテナにとらわれない方法を教えて、そのフレームワークを使って書かれたすべてのアプリケーションにDIパターンを適用しない方法を教えてもらえれば、私はそれらを聞いてうれしいです。 –