我正在查看Microsoft Unity注入的webapi,我们基于我在这里找到的完整堆栈代码;
现在,当我运行代码并在这种情况下点击患者控制器时,
[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
这个实现是否缺少某些内容,或者在实例化控制器时依赖注入是否会自动工作?
有人指出我可以注入服务。但这意味着我必须将每个服务注册为统一,所有服务最终都将相同的上下文接口注入其中。我原本以为有办法解决这个问题?