1

问题:

我正在使用 MVC4 和 WebAPI。我已经安装了 Unity.WebAPI 包并且卡住了。

不知道bootstrapper.cs的Initialise()中需要注册什么?接口和类还是我的控制器?

using System.Web.Http;
using Microsoft.Practices.Unity;
using unitywapi4.Models;

namespace unitywapi4
{
    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();

            // register all your components with the container here
            // e.g. container.RegisterType<ITestService, TestService>();       

            container.RegisterType<IProductRepository, Product>();

            return container;
        }
    }
}

错误:

不能用作泛型类型或方法“Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices.Unity.IUnityContainer, params Microsoft.Practices.Unity.InjectionMember[])”中的类型参数“TTo”。**

没有从“unitywapi4.Models.Product”到“unitywapi4.Models.IProductRepository”的隐式引用转换。

4

1 回答 1

1

显然...

映射类型对于检索实现相同指定接口或从相同指定基类继承的不同对象的实例很有用。映射的目标类型必须继承或实现源的基类型或接口。您可以使用容器方法的泛型重载为类型注册生成默认映射和命名映射。

http://msdn.microsoft.com/en-us/library/ff660923%28v=PandP.20%29.aspx#registertype_simple

于 2012-07-16T06:32:09.223 回答