Unity.WebAPI - 注册组件

时间:2012-07-16 01:37:23

标签: asp.net-mvc-4 asp.net-web-api

问题:

我正在使用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'的隐式引用转换。

1 个答案:

答案 0 :(得分:1)

...显然

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

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