MVVM Light를 사용하고 있습니다. 내 자원에 더 많은 가치 컨버터를 추가하면 내 응용 프로그램은 예외로 충돌 'System.InvalidOperationException'형식의 예외가 Microsoft.Practices.ServiceLocation.DLL에서 발생했지만 사용자 코드에서 처리되지 않은ServiceLocationProvider를 설정해야합니다.
추가 정보 : ServiceLocationProvider를 설정해야합니다.
App.xaml.cs
OnLaunched 이벤트에서
I이 선 I는 인수 ServiceLocatorProvider로 취하는 SetLocatorProvider 메소드가 볼 수있는 본 ServiceLocator에서
ServiceLocator.Current.GetInstance<MyViewModel>();
거기 충돌
.. 있다.
protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
...
}
if (rootFrame.Content == null)
{
...
}
Window.Current.Activate();
DispatcherHelper.Initialize();
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
ServiceLocator.Current.GetInstance<MyViewModel>();
}
편집이 : 여기에 전체 OnLaunched 이벤트 나 일자 웹 및 마이크로 소프트의 MSDN 페이지에서 아무것도 찾을 수 couldnt한다.
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
퍼팅 후의 예외 occures :
가형 Microsoft.Practices.ServiceLocation.ActivationException '의 예외가 발생하지만 GalaSoft.MvvmLight.Extras.DLL 사용자 코드에 처리되지
추가 정보 : 캐시에 유형이 없습니다 : cMC.ViewModel.MyViewModel.
이
는 ViewModelLocator의 코드public class ViewModelLocator
{
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MyViewModel>();
}
public MyViewModel MyVM
{
get
{
return ServiceLocator.Current.GetInstance<MyViewModel>();
}
}
public static void Cleanup() {}
}
:
}는 App.xaml.cs를에서 그런
: 그래서 나는이 같은 ViewModelLocator 클래스를 수정 단일성 또는 ... ServiceLocator.SetLocatorProvider (() => new UnityServiceLocatorAdapter (container)) 메소드를 호출하여 공급자를 설정해야합니다. – Xeun