小编Van*_*ean的帖子

Unity 的 ResolutionFailedException

我正在使用 Patterns and Practices 的 Unity 将依赖项注入到我的对象中,并且遇到了一个奇怪的(无论如何对我来说)问题。这是我的类定义:

public class ImageManager : IImageManager 
{
    IImageFileManager fileManager;

    public ImageManager(IImageFileManager fileMgr)
    {
        this.fileManager = fileMgr;

    }
}

public class ImageFileManager : IImageFileManager
{
    public ImageFileManager(string folder)
    {
        FileFolder = folder;
    }
 }
Run Code Online (Sandbox Code Playgroud)

这是注册我的课程的代码

container.RegisterInstance<MainWindowViewModel>(new MainWindowViewModel())
         .RegisterType<IPieceImageManager, PieceImageManager>(
              new InjectionConstructor(typeof(string)))
         .RegisterType<IImageFileManager, ImageFileManager>()
         .RegisterType<IImageManager, ImageManager>(
              new InjectionConstructor(typeof(IImageFileManager)));
Run Code Online (Sandbox Code Playgroud)

我最初在这样的 XAML 文件背后的代码中解决了这个问题(我知道,它违背了目的。请耐心等待。)

IImageManager imageManager = MvvmViewModelLocator.Container.Resolve<IImageManager>(
    new ParameterOverride("folder", "/images"));
Run Code Online (Sandbox Code Playgroud)

它奏效了。但是我为我的主视图创建了一个视图模型,当我将同一行复制到其中时,出现异常。以下是两个最内在的例外:

InnerException: Microsoft.Practices.Unity.ResolutionFailedException
  HResult=-2146233088
  Message=Resolution of the dependency failed, type = "SwapPuzzleApp.Model.IImageManager", name = "(none)".
Exception occurred while: …
Run Code Online (Sandbox Code Playgroud)

c# unity-container

3
推荐指数
1
解决办法
6万
查看次数

标签 统计

c# ×1

unity-container ×1