在我的WebApi的bootstrapper类中,我试图根据其接口类型注册一个名为“Facade”的类的新实例。
在这种被注册的类型中,它需要一个新的'CRUDOperator'实例,它的构造函数中也有一个新的'Adapter'实例。我正在尝试做什么?我目前正在接受一个异常,即超载参数不正确。
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;
}
}
答案 0 :(得分:0)
Unity能够解析具体类型而无需注册它们,因此如果在您的情况下CRUDOperatorSelector和Adapter类型是具体类型(我假设它们是),您只需要将类型Facade注册为IFacade的实现并解决它。然后,Unity将创建每个依赖项的实例,并将其传递给Facade的构造函数。 如果其中一些类型实现了抽象(接口或抽象类),也可以注册它们。