asp.net-mvc – 如何在ASP.NET MVC 2中使用模型绑定器的DI / IoC
发布时间:2020-12-15 22:23:50 所属栏目:asp.Net 来源:网络整理
导读:假设我有一个User实体,我想在构造函数中将它的CreationTime属性设置为DateTime.Now.但作为单元测试采用者,我不想直接访问DateTime.Now,而是使用ITimeProvider: public class User { public User(ITimeProvider timeProvider) { // ... this.CreationTime =
假设我有一个User实体,我想在构造函数中将它的CreationTime属性设置为DateTime.Now.但作为单元测试采用者,我不想直接访问DateTime.Now,而是使用ITimeProvider:
public class User { public User(ITimeProvider timeProvider) { // ... this.CreationTime = timeProvider.Now; } // ..... } public interface ITimeProvider { public DateTime Now { get; } } public class TimeProvider : ITimeProvider { public DateTime Now { get { return DateTime.Now; } } } 我在我的ASP.NET MVC 2.0应用程序中使用NInject 2.我有一个UserController和两个Create方法(一个用于GET,一个用于POST).用于GET的那个是直接的,但用于POST的那个不是那么直接而不是那么向前:P因为我需要弄乱模型绑定器告诉它获得ITimeProvider的实现的引用以便能够构造用户实例. public class UserController : Controller { [HttpGet] public ViewResult Create() { return View(); } [HttpPost] public ActionResult Create(User user) { // ... } } 我还希望能够保留默认模型绑定器的所有功能. 有机会解决这个简单/优雅/等? :d 解决方法
怎么样而不是使用ITimeProvider试试这个:
public class User { public Func<DateTime> DateTimeProvider = () => DateTime.Now; public User() { this.CreationTime = DateTimeProvider(); } } 在你的单元测试中: var user = new User(); user.DateTimeProvider = () => new DateTime(2010,5,24); 我知道这不是很优雅,但不是弄乱模型绑定器,这可能是一个解决方案.如果这不是一个好的解决方案,您可以实现自定义模型绑定器并覆盖CreateModel方法,您将在模型的构造函数中注入依赖项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net中mvc使用ajax提交参数的匹配问题解决探讨
- 在asp.net core 1.0中如何获取当前url
- asp.net-mvc – 如何使用post或get来检查控制器是否被调用?
- 在ASP.Net的URL中检索锚点链接
- asp.net-mvc – 保护抓取工具中的网站内容
- asp.net-web-api – 如何将OData过滤器转换为LINQ表达式?
- asp.net-mvc – 使用依赖注入来组织ASP.Net MVC解决方案的最
- asp.net-mvc-3 – EntityType’x’没有定义键.定义此Entity
- asp.net-mvc – 覆盖控制器AuthorizeAttribute只有一个操作
- asp.net-mvc – MVC 3多个DisplayFor-Templates
推荐文章
站长推荐
- asp.net-mvc-3 – 在MVC3 Controller操作中返回文
- DevExpress v17.2新版亮点—ASP.NET篇(二)
- asp.net-mvc – 如何摆脱ASP.NET MVC中的HTML错误
- asp.net-mvc – 无法加载类型’System.Web.Mvc.V
- ASP脚本中的Python 500服务器错误
- asp.net-mvc – MVC ajax json post到控制器动作
- 在ASP.NET Web窗体中收集输入值的推荐方法是什么
- .net – IActionFilter vs IResultFilter
- mvc-mini-profiler – MVC MiniProfiler与ASP.NE
- asp.net – aspx页面中的选项卡
热点阅读