首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到类型“System.Web.HttpPostedFile”上的构造函数

找不到类型“System.Web.HttpPostedFile”上的构造函数
EN

Stack Overflow用户
提问于 2009-12-17 20:47:10
回答 4查看 4.6K关注 0票数 2

我正在尝试使用以下命令创建一个HttpPostedFile实例

代码语言:javascript
复制
var obj2 = Activator.CreateInstance(
    typeof(HttpPostedFile), 
    BindingFlags.NonPublic | BindingFlags.Instance,
    null,
    new object[] { },
    System.Globalization.CultureInfo.CurrentCulture
);

但我得到了错误‘构造函数的类型'System.Web.HttpPostedFile’找不到.‘。

有没有其他方法来创建HttpPostedFile的实例,或者我做错了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-17 21:17:11

您也许可以改用System.Web.HttpPostedFileBase。它具有与HttpPostedFile相同的方法,但是是为子类化而设计的。然后,您可以使用HttpPostedFileWrapper将实际的HttpPostedFile传递给需要HttpPostedFileBase的方法。

这些额外的类在System.Web.Abstractions程序集中。ASP.NET MVC利用这一点(以及同一程序集中的其他抽象)来简化单元测试。有关详细信息,请参阅the documentation on MSDN

票数 4
EN

Stack Overflow用户

发布于 2011-09-09 05:00:05

我刚刚遇到了同样的问题,并使用Moq解决了它,如下所示

代码语言:javascript
复制
var postedfile = new Mock<HttpPostedFileBase>();
postedfile.Setup(f => f.ContentLength).Returns(8192);
postedfile.Setup(f => f.FileName).Returns("myfile.txt");
postedfile.Setup(f => f.InputStream).Returns(new MemoryStream(8192));
myObject.HttpPostedFile = postedfile.Object;
票数 5
EN

Stack Overflow用户

发布于 2009-12-17 20:49:54

HttpPostedFile有一个内部构造函数,它接受3个参数,不打算从您的代码中调用:

代码语言:javascript
复制
internal HttpPostedFile(string filename, string contentType, HttpInputStream stream)

为了实例化这个类,您需要传递一个文件名、一个内容类型和一个HttpInputStream实例,该实例也是一个内部类型,因此实例化它的唯一方法是通过反射。

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

https://stackoverflow.com/questions/1921543

复制
相关文章

相似问题

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