我是否必须将变量声明为公共才能在 Unity 中使用 [依赖项]
本文关键字:Unity 依赖 是否 变量 声明 | 更新日期: 2023-09-27 18:35:45
using Microsoft.Practices.Unity;
..
..
public class ContentsController : BaseController
{
[Dependency]
public IContentService contentService { get; set; }
}
我正在使用Unity为我提供一个IContentService实例。但是,只有当我宣布这是公开的时,它才会起作用。如果我声明私有,那么它_cs为空?
我可以通过将其声明为公共来使其工作的唯一方法吗?
是否可以在控制器构造函数中声明 IContentService?如果我这样做了,那么有人可以向我展示最好的语法以及我如何将其连接到私有变量吗?
至于关于构造函数注入的部分:
public class ContentsController : BaseController
{
private readonly IContentService service;
public ContentsController(IContentService service)
{
if(service == null) throw new ArgumentNullException("service");
this.service = service;
}
}
var container = new UnityContainer();
container.RegisterType<IContentService, MyContentService>();
var controller = container.Resolve<ContentsController>();
这里有一个现成的答案:Unity 框架 DependencyAttribute 仅适用于公共属性?您必须将变量声明为 public,才能使此属性按预期工作。