我正在尝试使用ServiceLocator创建一个实例
/// <summary>
/// Gets the MediaPlayer property.
/// </summary>
[SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "This non-static member is needed for data binding purposes.")]
public MediaPlayerViewModel MediaPlayer
{
get
{
try
{
return ServiceLocator.Current.GetInstance<MediaPlayerViewModel>();
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
return null;
}
}
}但我得到了以下的解释:
用户代码HResult=-2146233088 Microsoft.Practices.ServiceLocation.ActivationException在试图获取MediaPlayerViewModel类型的实例时发生了“键”错误。 在Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType,字符串键)在c:\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 53 at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstanceTService in c:\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 90 at Verint.PI2.MediaPlayer.UI.ViewModel.ViewModelLocator.get_MediaPlayer() in c:\Users\ekreiczer\Documents\Visual 2012\Projects\player\Verint.PI2.MediaPlayer.UI\ViewModel\ViewModelLocator.cs:第73行InnerException: InnerException HResult=-2146233088 Message=Resolution的依赖项失败,type = "Verint.PI2.MediaPlayer.UI.ViewModel.MediaPlayerViewModel",name = "(none)“。当:进行解析时发生异常。例外是: Verint.PI2.MediaPlayer.UI.Services.IDialogService,-当前类型,InvalidOperationException是一个接口,不能构造。您缺少类型映射吗?
我不知道怎么打地图,有人能帮忙吗?
发布于 2014-10-02 14:29:13
MediaPlayerViewModel很可能依赖于Verint.PI2.MediaPlayer.UI.Services.IDialogService的实现。
查看构造函数和MediaPlayerViewModel的属性来验证这一点。
您忘记将Verint.PI2.MediaPlayer.UI.Services.IDialogService映射到引导程序中的实现。
https://stackoverflow.com/questions/26162968
复制相似问题