类型或命名空间名称' UnitOfWork'无法找到

时间:2017-01-27 10:50:03

标签: c# asp.net-web-api dependency-injection inversion-of-control unity-container

我是IOC&统一。

下面是WebApi项目中的Bootstraper类。

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

        DependencyResolver.SetResolver(new UnityDependencyResolver(container));

        // register dependency resolver for WebAPI RC  
        GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
    }

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

         //here I am getting error <UnitOfWork> could not be found.
        container.RegisterType<IRegistrationService, RegistrationService>().RegisterType<UnitOfWork>(new HierarchicalLifetimeManager());

        return container;
    }  
}

这是我的package.config

<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="bootstrap" version="3.0.0" targetFramework="net45" />
<package id="CommonServiceLocator" version="1.3" targetFramework="net45" />
<package id="EntityFramework" version="6.0.1" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.1" targetFramework="net45" />
 <package id="Microsoft.AspNet.WebApi" version="5.0.0" targetFramework="net45" />
 <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="Unity" version="4.0.1" targetFramework="net45" />
<package id="Unity.WebAPI" version="5.2.3" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>

我已经安装了

 Install-Package Unity.WebAPI

但是我收到了错误(标题)。

我已经参考以下链接开始使用。

http://www.c-sharpcorner.com/UploadFile/1492b1/restful-day-2-inversion-of-control-using-dependency-injecti/

我在这里想要摆脱这个错误。

1 个答案:

答案 0 :(得分:2)

根据文章,该文章是在示例文章的项目中创建的模型/类。

如果您检查了该系列中previous article的链接,您会看到他们定义该课程的位置。

/// <summary>  
/// Unit of Work class responsible for DB transactions  
/// </summary>  
public class UnitOfWork : IDisposable   { ... }

我建议您从该教程的开头开始。如果你从中间开始,你会错过几步。