gpt4 book ai didi

c# - 无法从 HttpContextBase 转换为 HttpContextBase

转载 作者:行者123 更新时间:2023-11-30 14:03:58 34 4
gpt4 key购买 nike

使用以下代码(使用 Moq 4.0.10501.6):

HomeController controller = new HomeController();
ActionResult result = _controller.Index();

Mock<HttpResponseBase> response = new Mock<HttpResponseBase>();

Mock<HttpContextBase> httpContext = new Mock<HttpContextBase>();
httpContext.Setup(x => x.Response).Returns(response.Object);

Mock<ControllerContext> controllerContext = new Mock<ControllerContext>();
controllerContext.Setup(c => c.HttpContext).Returns(httpContext.Object);
result.ExecuteResult(controllerContext.Object);

...我收到以下编译器错误:

error CS1502: The best overloaded method match for
'Moq.Language.IReturns<System.Web.Mvc.ControllerContext,
System.Web.HttpContextBase>.Returns(System.Web.HttpContextBase)'
has some invalid arguments

error CS1503: Argument 1: cannot convert from 'System.Web.HttpContextBase
[c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
v4.0\System.Web.dll]' to 'System.Web.HttpContextBase'

我做错了什么?为什么我不能从 HttpContextBase 转换为 HttpContextBase

我从一个 ASP.NET MVC 项目开始,添加了一个 NUnit 测试项目,然后 ReSharper 整理出了缺失的 System.Web 引用。根据 VS 中的属性窗口,我引用的 System.Web.dll 位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System .Web.dll.

最佳答案

我发现(感谢 Reflector)HttpContextBase 实际上在 System.Web.dll, Version 4.0.0.0 System.Web.Abstractions,版本 3.5.0.0

因此,我通过向项目添加对 System.Web.Abstractions,版本 4.0.0.0 的引用来修复它。

但是,奇怪的是,System.Web.Abstractions,版本 4.0.0.0包含HttpContextBase

所以,我仍然不确定发生了什么,但至少它现在正在编译。

关于c# - 无法从 HttpContextBase 转换为 HttpContextBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3219157/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com