-1

在我的 WebApi 的引导程序类中,我试图根据其接口类型注册一个名为“Facade”的类的新实例。

在此类型中,它需要一个新的“CRUDOperator”实例,该实例在其构造函数中也有一个“Adaptor”的新实例。我正在尝试做的事情可能吗?我目前只是收到一个异常,即重载参数不正确。

 public static class Bootstrapper
{
    public static void Initialise()
    {
        var container = BuildUnityContainer();

        GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
    }

    private static IUnityContainer BuildUnityContainer()
    {
        var container = new UnityContainer();

        *****ERROR*****
        container.RegisterType<IFacade,Facade>(new CRUDOperatorSelector(new Adapter()));

        return container;
    }
}
4

1 回答 1

0

Unity 能够在不注册具体类型的情况下解析它们,因此如果在您的情况下,类型 CRUDOperatorSelector 和 Adapter 是具体类型(我假设它们是),您只需将类型 Facade 注册为 IFacade 的实现并解决它。Unity 将创建每个依赖项的实例并将其传递给 Facade 的构造函数。如果其中一些类型实现了抽象(接口或抽象类),则也要注册它们。

于 2013-11-14T16:10:52.627 回答