我有自己的遗传App.Controller
距离Mvc.Controller
,然后我所有的控制器继承.我写了利用接口的提供者和执行它MyService
和构造函数将Server
财产的Mvc.Controller
这是HttpServerUtilityBase
.
但是,我实例化MyService
了App.Controller
构造函数.问题是Server
Controller 的属性null
在构建时MyService
.我曾经习惯于public Controller () : base() { }
建造基地.但是,Server
遗体null
.
我想Web.HttpContext.Current.Server
尽可能避免.
有没有人解决这个问题?
编辑:嗯,我已经实现了tvanfosson的建议,当我的app MyService
在属性get
方法中构造时,Server
仍然是null.
编辑2:没关系,我是个傻瓜.我有另一个Controller
使用Server
,并没有改变它.案件结案.
使用延迟初始化来构建您的服务.
private MyService service; public MyService Service { get { if (this.service == null) { this.service = new MyService(this.Server); } return this.service; } }
然后,您的服务实际上不会实例化,直到它在控制器操作中使用,并且此时已设置Server属性.