ロケーターの初期化コードがありません。
Prism を使用しているか (そうですか?)、ブートストラップを正しく設定する必要があります - http://msdn.microsoft.com/en-us/library/gg430868(PandP.40).aspx
または、Prism を使用せず、ロケーターを手動でセットアップするだけです (Main
たとえば):
IUnityContainer container = new UnityContainer();
// register the singleton of your event aggregator
container.RegisterType<IEventAggregator, EventAggregator>( new ContainerControlledLifetimeManager() );
ServiceLocator.SetLocatorProvider( () => container );
次に、コードの任意の場所で呼び出すことができます
var eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
編集: 質問を編集し、Prism について言及しました。次に、カスタム ブートストラップを作成し、型を登録して、ブートストラップを実行する必要があります。
public class CustomBootstrapper : UnityBootstrapper
{
}
そして電話する
var bootstrapper = new CustomBootstrapper();
bootstrapper.Run();
アプリケーションの開始ルーチンで。私が覚えていることから、シングルトンとしてUnityBootstrapper
登録するIEventAggregator
ので、それを繰り返す必要はありません。