2012-06-29 11 views
6

Używam MVVMLight od pewnego czasu i zacząłem używać V4, ponieważ został po raz pierwszy udostępniony.<Interface> jest już zarejestrowany błąd w mieszance przy użyciu MVVMLightV4

Jednak jedna kwestia zawsze trwała u mnie, której nie byłem w stanie rozwiązać.

Jeśli utworzę projekt przy użyciu szablonu projektu MVVM 4, to rozwiązanie zostanie zbudowane poprawnie, działa poprawnie i działa poprawnie w mieszance.

Jednak

Jeśli zacznę mój własny projekt i zainstalować MVVMLight V4 użyciu Nuget, jak tylko dodam nawet podstawowe DataService i umożliwić wykomentowane kodu w szablonie ViewModelLocator i otworzyć projekt w mieszance Właśnie pojawia się błąd:

„Klasa jest już zarejestrowany”

Właśnie próbuje dotrzeć do sedna tego bardzo irytujących błędów.

Wystarczy być jasne, że nie ma znaczenia, co jest w DataService a nawet z interfejsem i obsługa z tylko 1 funkcja pusta daje ten sam błąd

Odpowiedz

22

mieszanka, z jakiegoś powodu, może zainicjować ViewModelLocator ponad pewnego razu.

Więc trzeba dodać należy sprawdzić:

if (!SimpleIoc.Default.IsRegistered<ISomeService>()) 
    SimpleIoc.Default.Register<ISomeService, SomeService>(); 
+0

to byłoby w porządku oprócz tego, że nie wyjaśnia, dlaczego właśnie ten sam kod działa inaczej między szablonem Nowy projekt dla MVVMLight i dodawanie MVVMLight przez Nuget. Ale dzięki za pracę na teraz – Darkside

+0

Thx trydis! Obejście działa! Szaleję z tym samym problemem, używając Win8 –

+0

@IvanFioravanti Moja przyjemność. Przez jakiś czas drapałem się po głowie, zanim zdałem sobie sprawę, co się dzieje :) – trydis

Powiązane problemy