首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换(和单元测试)统一管理器会话对象?

替换(和单元测试)统一管理器会话对象?
EN

Stack Overflow用户
提问于 2013-09-05 15:17:19
回答 1查看 204关注 0票数 0

我继承了一个设计非常糟糕的ASP.NET MVC 3应用程序。

我有238行,以及63个通过会话对象引用Unity的文件,如下所示:

代码语言:javascript
复制
UnityManager unity = (UnityManager)Session["UnityManager"];

如果IIS会话超时最初设置为20分钟,此MVC应用程序所在的服务器将对我的客户造成严重破坏。您能想象IoC "manager“对象在20分钟内结束它的生命周期,而我的用户至少需要2小时吗?!我最近重置了IIS会话超时设置,并将其更改为120分钟.

现在我想从我的应用程序中删除UnityManager会话对象。我真的不知道怎么做。

在这个应用程序中,我也没有单元测试,这真的让我很困扰。我们已经通过当前的会话对象查看了单元测试,但无法弄清楚如何模拟它。

我的问题是:

  1. 在没有会话对象的情况下引用Unity的最佳方法是什么?如何在控制器中调用和实例化它?
  2. UnityManager的会话对象是首选方法吗?我猜不是,这太可怕了。
  3. 如何测试当前的统一管理器会话对象?
EN

回答 1

Stack Overflow用户

发布于 2013-09-05 16:36:39

我采用的方法是用我自己的控制器解析器替换默认的控制器解析器,它使用了统一(我也使用了Autofac),并允许我将依赖项注入控制器的构造函数(请参阅此answer)。

我还在GitHub上放置了一个样例MVC应用程序:https://github.com/agartee/Mvc4CustomIoC

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18640129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档