7

私はしばらくの間 MVVMLight を使用しており、V4 が最初に利用可能になったときから使い始めました。

しかし、私が解決できなかった1つの問題が常に私に残っていました。

MVVM 4 プロジェクト テンプレートを使用してプロジェクトを作成すると、ソリューションは正常にビルドされ、正常に実行され、blend で正常に動作します。

でも

独自のプロジェクトを開始し、Nuget を使用して MVVMLight V4 をインストールすると、基本的な DataService を追加し、ViewModelLocator テンプレートでコメントアウトされたコードを有効にして、Blend でプロジェクトを開くとすぐにエラーが発生します。

「クラスはすでに登録されています」

この非常に迷惑なエラーの真相を突き止めようとしています。

明確にするために、空の関数が1つしかないインターフェイスとサービスでも同じエラーが発生するため、DataServiceの内容は問題ではありません

4

1 に答える 1

23

Blend は、何らかの理由で ViewModelLocator を複数回初期化する場合があります。

したがって、チェックを追加する必要があります。

if (!SimpleIoc.Default.IsRegistered<ISomeService>())
    SimpleIoc.Default.Register<ISomeService, SomeService>();
于 2012-07-02T19:08:29.467 に答える