C# DependencyResolver不';无法解决依赖关系。为什么?

C# DependencyResolver不';无法解决依赖关系。为什么?,c#,dependency-injection,inversion-of-control,unity-container,C#,Dependency Injection,Inversion Of Control,Unity Container,我在一个项目中使用Unity作为我的IoC UnityConfig是这样设置的 public static class UnityConfig { private static readonly IUnityContainer container = new UnityContainer(); public static void ConfigureIoCContainer() { My.Composition.Builder.Compose(conta

我在一个项目中使用Unity作为我的IoC

UnityConfig是这样设置的

public static class UnityConfig
{
    private static readonly IUnityContainer container = new UnityContainer();

    public static void ConfigureIoCContainer()
    {
        My.Composition.Builder.Compose(container);

        DependencyResolver.SetResolver(new UnityDependencyResolver(container));
    }

    /// <summary>
    /// Gets the configured Unity container.
    /// </summary>
    public static IUnityContainer GetConfiguredContainer()
    {
        return container;
    }
}
    public ConfigUow(ICrudRepo<AM.Configuration> crudRepo = null) : base(crudRepo)
    {
        CrudRepo = crudRepo ?? DependencyResolver.Current.GetService<IConfigRepo>();
        Ctx = CrudRepo.GetContext();
    }
container.RegisterType(typeof (ICrudRepo<>), typeof (CrudRepo<>)); 
但是,如果我让下一行执行以设置DependencyResolver并调用

DependencyResolver.Current.GetService<IConfigUow>();
工作并返回
SecurityUow
的实例。尝试解析
IResourceUow
也会失败

我看不出我做错了什么。有人有什么想法吗

更新

好的,通过调用
container.Resolve(IConfigUow)
我得到了一个被DependencyResolver屏蔽的异常

该错误表明我缺少类型映射。
ConfigUow
的构造函数如下所示

public static class UnityConfig
{
    private static readonly IUnityContainer container = new UnityContainer();

    public static void ConfigureIoCContainer()
    {
        My.Composition.Builder.Compose(container);

        DependencyResolver.SetResolver(new UnityDependencyResolver(container));
    }

    /// <summary>
    /// Gets the configured Unity container.
    /// </summary>
    public static IUnityContainer GetConfiguredContainer()
    {
        return container;
    }
}
    public ConfigUow(ICrudRepo<AM.Configuration> crudRepo = null) : base(crudRepo)
    {
        CrudRepo = crudRepo ?? DependencyResolver.Current.GetService<IConfigRepo>();
        Ctx = CrudRepo.GetContext();
    }
container.RegisterType(typeof (ICrudRepo<>), typeof (CrudRepo<>)); 
这一切都奏效了

对于未来的读者来说,这些页面证明是有用的


答案是DependencyResolver掩盖了IoC容器引发异常的事实


发现解决这个问题并不难。请读者查看原始问题的更新,了解我必须修复的内容以及我是如何修复的。

无法重现您的问题。你能提供一份吗?。谢谢@YacoubMassad,但我想我已经安排好了。