当控制器被命中时,Microsoft Unity Service为空

时间:2016-09-10 16:26:00

标签: c# asp.net asp.net-web-api unity-container

我正在查看Microsoft Unity注入的webapi,我们基于我在这里找到的完整堆栈代码;

Full Stack WebApi GitHub Repo

现在,当我运行代码并在这种情况下点击患者控制器时,

[Dependency]
public PatientService PatientService { get; set; }

为空。

现在,患者服务是将上下文注入其构造函数的实体。

public class PatientService : BaseService
{
    private readonly Func<IUCareDataContext> _contextFactory;

    /// <summary>
    /// Initializes a new instance of the <see cref="PatientService"/> class.
    /// </summary>
    /// <param name="contextFactory">The context factory.</param>
    public PatientService(Func<IUCareDataContext> contextFactory)
    {
        this._contextFactory = contextFactory;
    }

通过查看Unity文档和UnityConfig.cs,我可以看到Register已完成,但没有Resolve?

namespace CCS.Services.WebApi
{
   using CCS.Data.UCare;
   using Data;
   using Microsoft.Practices.Unity;
   using System.Web.Http;
   using Unity.WebApi;

public static class UnityConfig
{
    public static void RegisterComponents()
    {
        var container = new UnityContainer();

        container.RegisterType<IUCareDataContext, UCareDataContext>();

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

Unity [Dependency] Attribute MSDN

这个实现是否缺少某些内容,或者在实例化控制器时依赖注入是否会自动工作?

有人指出我可以注入服务。但这意味着我必须将每个服务注册为统一,所有服务最终都将相同的上下文接口注入其中。我原本以为有办法解决这个问题?

0 个答案:

没有答案