![]() |
1
8
具有接口abstract httpcontext.current。只公开您需要的方法。
接受这个抽象,并将其注入到其他提供者类中。这将允许您通过模拟HTTP上下文抽象来测试提供者。作为一个附带的好处,您可以使用HTTPContext抽象做其他漂亮的事情,除了模仿它。一方面,重用它。向包等添加通用类型参数。 |
![]() |
2
9
听起来你应该用
|
![]() |
3
3
我不知道你为什么这么麻烦。似乎只是在httpContextUserProvider中直接使用httpContext.current是正确的做法。你永远不会在不同的httpcontext中替换… |
![]() |
4
2
也许我遗漏了一些东西,但是上面的答案对我来说不起作用(已经被删除了——尽管它仍然是一个有用的答案——它展示了如何告诉sm传递构造函数参数)。相反,如果我这样做:
编辑: 多亏了布拉德的回答我 认为 我对httpContext有更好的理解。他的回答肯定有效,我只是不确定我是否喜欢调用httpContext.current在类中(它似乎隐藏了依赖性,但我远不是这方面的专家)。 据我所知,上面的代码应该可以用于注入httpcontext。MattHinze提出了一个补充点,如果我从httpContext需要的只是user.identity.name,那么我的设计应该是明确的(在httpContext周围有一个接口只公开我需要的内容)。我觉得这是个好主意。 午餐过后,我有点意识到我的服务只需要依赖一个字符串:用户名。如果它依赖于IUserProvider,可能没有太多附加值。所以我知道我不希望它依赖于httpContext,我只需要一个字符串(用户名)——我需要看看我是否可以学习足够的结构映射foo来为我建立这个连接。(Sirrocoo的回答给出了从哪里开始的提示,但他删除了它:*()。 |
![]() |
Chan Yoong Hon · 导航到新页面并显示警报框 7 年前 |
|
chapas · 注入到不同的项目/程序集中 8 年前 |
![]() |
shannon · GetHashCode只是这里的货物崇拜吗? 12 年前 |