MVVMlight 등록 및 사용을 통한 SimpleIOC

C. 파 솔린

안녕하세요, 내 클래스를 serviceLocator에 등록하고 재사용하려고합니다. 내 코드는 다음과 같습니다.

public ViewModelLocator()
{
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

    SimpleIoc.Default.Register<IUnitOfWork, UnitOfWork>(true);

    SimpleIoc.Default.Register<MainViewModel>(() =>
    {
        return new MainViewModel(UnitOfWorkItem);
    });
    SimpleIoc.Default.Register<LoginViewModel>(() =>
    {
        return new LoginViewModel(UnitOfWorkItem);
    });
}

public UnitOfWork UnitOfWorkItem
{
    get
    {
        return ServiceLocator.Current.GetInstance<UnitOfWork>();
    }
}

public MainViewModel Main
{
    get
    {
        return ServiceLocator.Current.GetInstance<MainViewModel>();
    }
}

인스턴스 MainViewModel이 다음과 같은 예외를 던지는 함수에 UnitOfWorkItem을 제공하려고 할 때 :

캐시에서 찾을 수없는 유형 : Client.Business.UnitOfWork.

내 스택 추적은 다음과 같습니다.

GalaSoft.MvvmLight.Ioc.SimpleIoc.DoGetService (Type serviceType, String key, Boolean cache) in D : \ GalaSoft \ mydotnet \ MVVMLight \ source \ GalaSoft.MvvmLight \ GalaSoft.MvvmLight.Extras (PCL) \ Ioc \ SimpleIoc.cs : D : \ GalaSoft \ mydotnet \ MVVMLight \ source \ GalaSoft.MvvmLight \ GalaSoft.MvvmLight.Extras (PCL) \ Ioc \ SimpleIoc.cs : riga 912의 GalaSoft.MvvmLight.Ioc.SimpleIoc.GetInstanceTService의 리가 537 PrivateVideoChat.Client .ViewModel.ViewModelLocator.get_UnitOfWorkItem () in C : \ Users \ c.fasolin \ Documents \ Visual Studio 2013 \ Projects \ PrivateVideoChat.Solution \ PrivateVideoChat.Client \ ViewModel \ ViewModelLocator.cs : riga 63 in PrivateVideoChat.Client.ViewModel.ViewModelLocator . <. ctor> b__0_1 () C : \ Users \ c.fasolin \ Documents \ Visual Studio 2013 \ Projects \ PrivateVideoChat.Solution \ PrivateVideoChat.Client \ ViewModel \ ViewModelLocator.cs : riga 52

내가 틀린 곳 감사합니다

Fharreau

UnitOfWorkItem속성은 등록을 찾고있다 UnitOfWork. 하지만 해당 클래스에 아무것도 등록하지 않고 IUnitOfWork!

당신은 당신의 문제를 해결해야하는 UnitOfWorkItem변경 UnitOfWorkIUnitOfWork:

public UnitOfWork UnitOfWorkItem
{
    get
    {
        return ServiceLocator.Current.GetInstance<IUnitOfWork>();
    }
}

더 나은 :

참고로 IoC 컨테이너의 힘은 등록을 연결할 수 있다는 것입니다. 예를 들어, 귀하 LoginViewModel와 귀하의 MainViewModel경우 UnitOfWork생성자 매개 변수가 필요합니다 .

당신은 모두 등록하면 UnitOfWork, MainViewModelLoginViewModel같은를 :

SimpleIoc.Default.Register<UnitOfWork>(); 
SimpleIoc.Default.Register<LoginViewModel>(); 
SimpleIoc.Default.Register<MainViewModel>(); 

컨테이너는 ViewModels등록 생성자 등 을 자동으로 제공합니다 UnitOfWork.

이렇게하면 LoginViewModel 생성자에 제공하기 위해 UnitOfWork를 가져 오는 속성을 만들 필요가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MVVM Light SimpleIoc에서 다양한 종속성을 등록하는 방법

분류에서Dev

영역 및 MVVMLight 사용

분류에서Dev

다른 프로젝트에서 MvvmLight SimpleIoc를 사용하는 방법

분류에서Dev

SimpleIoc (MVVMlight) 종속성 인터페이스 목록 삽입 C # Windows Store

분류에서Dev

API를 통해 새 앱 사용자 등록 및 인증

분류에서Dev

Electron을 통한 PouchDB / CouchDB / 사용자 등록

분류에서Dev

사용자 등록을위한 사용자 이름 및 비밀번호 제출 오류

분류에서Dev

JavaScript 사용을위한 등록 확인

분류에서Dev

AngularJS를 사용한 등록

분류에서Dev

로그인 및 등록을위한 동일한 모델

분류에서Dev

C ++ 데코레이터 패턴, 템플릿을 사용한 정적 다형성 및 콜백 메서드 등록

분류에서Dev

Fetch를 통한 JSON 응답 등록 및 이해

분류에서Dev

React를 사용하여 한 페이지에 로그인 및 등록

분류에서Dev

여권 기반 사용자 인증 및 동일한 경로로 등록

분류에서Dev

Bcrypt 및 PassportJs 사용자 등록

분류에서Dev

사용자 등록 및 인증

분류에서Dev

Cartalyst Sentry 및 등록 사용자

분류에서Dev

Android 사용자 로그인 및 등록

분류에서Dev

Tcl 및 Mysql을 사용한 통계

분류에서Dev

로그인 한 모든 사용자에 대해 Django 사용자 사용 및 등록

분류에서Dev

사용자 등록 및 Firebase 오류 'Reference.push 실패 : 두 번째 인수는 유효한 함수 여야 함'을 사용한 로그인

분류에서Dev

Laravel을 사용하여 등록 및 등록 된 동일한 Course 테이블에 액세스하는 두 명의 사용자 (교사, 학생)를위한 피벗 테이블을 만드는 방법

분류에서Dev

앱 등록 포털을 통한 Microsoft API 권한 관리

분류에서Dev

새로운 WordPress 사용자를위한 사용자 정의 로그인 및 등록

분류에서Dev

새로운 WordPress 사용자를위한 사용자 정의 로그인 및 등록

분류에서Dev

MvvmLight의 IoC에서 다중 인터페이스 구현을 등록하는 방법은 무엇입니까?

분류에서Dev

장고 등록, 맞춤 등록 및 유효성 검사

분류에서Dev

Azure 앱 등록-범위 및 권한

분류에서Dev

신속한 등록 및 로그인

Related 관련 기사

  1. 1

    MVVM Light SimpleIoc에서 다양한 종속성을 등록하는 방법

  2. 2

    영역 및 MVVMLight 사용

  3. 3

    다른 프로젝트에서 MvvmLight SimpleIoc를 사용하는 방법

  4. 4

    SimpleIoc (MVVMlight) 종속성 인터페이스 목록 삽입 C # Windows Store

  5. 5

    API를 통해 새 앱 사용자 등록 및 인증

  6. 6

    Electron을 통한 PouchDB / CouchDB / 사용자 등록

  7. 7

    사용자 등록을위한 사용자 이름 및 비밀번호 제출 오류

  8. 8

    JavaScript 사용을위한 등록 확인

  9. 9

    AngularJS를 사용한 등록

  10. 10

    로그인 및 등록을위한 동일한 모델

  11. 11

    C ++ 데코레이터 패턴, 템플릿을 사용한 정적 다형성 및 콜백 메서드 등록

  12. 12

    Fetch를 통한 JSON 응답 등록 및 이해

  13. 13

    React를 사용하여 한 페이지에 로그인 및 등록

  14. 14

    여권 기반 사용자 인증 및 동일한 경로로 등록

  15. 15

    Bcrypt 및 PassportJs 사용자 등록

  16. 16

    사용자 등록 및 인증

  17. 17

    Cartalyst Sentry 및 등록 사용자

  18. 18

    Android 사용자 로그인 및 등록

  19. 19

    Tcl 및 Mysql을 사용한 통계

  20. 20

    로그인 한 모든 사용자에 대해 Django 사용자 사용 및 등록

  21. 21

    사용자 등록 및 Firebase 오류 'Reference.push 실패 : 두 번째 인수는 유효한 함수 여야 함'을 사용한 로그인

  22. 22

    Laravel을 사용하여 등록 및 등록 된 동일한 Course 테이블에 액세스하는 두 명의 사용자 (교사, 학생)를위한 피벗 테이블을 만드는 방법

  23. 23

    앱 등록 포털을 통한 Microsoft API 권한 관리

  24. 24

    새로운 WordPress 사용자를위한 사용자 정의 로그인 및 등록

  25. 25

    새로운 WordPress 사용자를위한 사용자 정의 로그인 및 등록

  26. 26

    MvvmLight의 IoC에서 다중 인터페이스 구현을 등록하는 방법은 무엇입니까?

  27. 27

    장고 등록, 맞춤 등록 및 유효성 검사

  28. 28

    Azure 앱 등록-범위 및 권한

  29. 29

    신속한 등록 및 로그인

뜨겁다태그

보관