asp.net-mvc-2 – 如何在控制器IoC框架不可知的情况下将Ninject
发布时间:2020-12-16 09:14:49 所属栏目:asp.Net 来源:网络整理
导读:我见过的几乎所有Ninject示例都解释了如何在ASP.NET MVC中使用它,它会自动将依赖项注入控制器.我如何手动使用Ninject?假设我有一个自定义ActionResult: public class JsonResult : ActionResult{ [Inject] public ISerializer Serializer { get; set; } pu
我见过的几乎所有Ninject示例都解释了如何在ASP.NET MVC中使用它,它会自动将依赖项注入控制器.我如何手动使用Ninject?假设我有一个自定义ActionResult:
public class JsonResult : ActionResult { [Inject] public ISerializer Serializer { get; set; } public JsonResult(object objectToSerialize) { // do something here } // more code that uses Serializer } 然后在我的控制器中,我在这样的方法中使用JsonResult: public ActionResult Get(int id) { var someObject = repo.GetObject(id); return new JsonResult(someObject); } 正如你所看到的,我自己实例化了这个对象,它回避了Ninject的注入,而Serializer将为null.但是,以下方式执行此操作对我来说似乎不太合适: public ActionResult Get(int id) { var someObject = repo.GetObject(id); return IoC.Kernel.Get<JsonResult>(someObject); } 因为现在控制器中不仅存在对Ninject的依赖,而且还必须在静态类/单例中公开Ninject内核,并确保依赖注入的对象仅通过内核创建. 有没有办法以某种方式配置Ninject注入依赖,而不依赖于暴露内核?如果可能的话,我希望能够使用新的关键字. 解决方法
使用注入内核的工厂:例如
public class ResultFactory : IResultFactory { public ResultFactory(IKernel kernel) { this.kernel = kernel; } public JsonResult CreateJsonResult(object obj) { var result = this.kernel.Get<JsonResult>(); result.ObjectToSerialize = obj; return result; } } 将此工厂注入控制器并使用它来创建操作结果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何最好在服务器上安装MVC 3?
- asp.net – 脚本控件不是注册的脚本控件
- asp.net-mvc – 实体框架TPC继承(请现在拍我)
- asp.net – Telerik RadGrid – 如何默认编辑模式?
- 24.集成ASP.NETCore Identity
- asp.net-mvc-3 – 为什么我的textBoxFor使用我的路由数据?
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单实例
- ASP.NET MVC 4软件包在mono v3下不工作
- asp.net-mvc-2 – 无论有没有nunit,mspec会更好吗?
- asp.net – 如何在MVC4的部分视图中添加脚本?
推荐文章
站长推荐
- asp.net-mvc – 用于MVC文件上传的Bootstrap进度
- Asp.net:替换GenericPrincipal
- 进程是经典ASP可以存储会话状态的唯一方法吗?
- asp.net-mvc – asp.net mvc数据库交互验证
- asp.net – 可以添加一个String.contains多个值吗
- asp.net – SignalR 2在Azure上失败
- asp.net-web-api – Web API / MVC 6中的安全JSO
- Azure上的Asp.Net Core 2.0产生了502.5
- asp.net-mvc-4 – 用于继承类型的WebApi模型绑定
- asp.net – 如何禁用Web.Config中的目录浏览
热点阅读