1

これはつまらないように聞こえますが、MSDNには空の情報がたくさんあるようです。このリンクのようにServiceLocator。UnityとPrismを使ったプロジェクトに参加しました。このようにWPFUserControlが渡されるコードでそれを見つけました

var alert = ServiceLocator.Current.GetInstance<AlertControl>();

これはUnityの解決策のようなものですか?

4

1 に答える 1

2

http://commonservicelocator.codeplex.com/

プロジェクトの説明から:

Common Service Locatorライブラリには、アプリケーションおよびフレームワークの開発者が参照できるサービスロケーションの共有インターフェイスが含まれています。ライブラリは、IoCコンテナとサービスロケーターの抽象化を提供します。ライブラリを使用すると、アプリケーションはハードリファレンスに依存せずに機能に間接的にアクセスできます。このライブラリを使用することで、サードパーティのアプリケーションとフレームワークが、特定の実装に縛られることなく、IoC /ServiceLocationを活用できるようになることが期待されます。

この抽象化は、そこにあるいくつかのIoCフレームワークによって実装されており、Unityはその1つです。それにもかかわらず、Unityはそのプロジェクトの所有者ではありません。

このように、たとえば、StructureMapはこれらのクラスの実装を提供するため、他のフレームワーク(パターンとプラクティスからのPrismなど)は他のIoCフレームワークと簡単に連携でき、Unity自体にバインドされません。

于 2012-11-03T17:17:38.453 に答える