C# - 我无法引用 HttpPostedFileBase
我在具有 CSLA 的分布式环境中使用 MVC .NET,并且我可以从我的 Web 层之一(例如 Website.MVC)引用 HttpPostedFileBase,但我无法从以下位置引用 HttpPostedFileBase:一个单独的层(我们称之为 OtherLayer.Web)。
知道我需要做什么才能调用 HttpPostedFileBase 吗? 我可以在两个层中使用 HttpPostedFile - 我应该使用它吗?
程序集引用基本相同 - 在 Website.MVC 中我有:
namespace Website.Mvc.Controllers
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Web.Mvc;
using System.Web;
using System.IO;
using PetOrganizer.Mvc.Helpers;
using TrupanionPetInsurance.Web;
而在我的其他层中我有:
namespace OtherLayer.Web
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Net.Mail;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using System.Xml;
using System.Xml.Serialization;
using Csla;
using iTextSharp.text;
using iTextSharp.text.pdf;
using TruDat.BusinessLayer;
using TruDat.BusinessLayer.Billing;
using TruDat.BusinessLayer.Data;
using TruDat.BusinessLayer.Utility;
using TrupanionPetInsurance.Web.EmailTemplateParser;
using TruDat.BusinessLayer.DataServices;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保您的项目引用包含
HttpPostedFileBase
类型。尽管看起来令人困惑,
HttpPostedFile
类型位于单独的程序集 (System.Web
) 中,但具有完全相同的命名空间。重要的是要记住,命名空间可以跨越程序集,并且程序集的名称不一定指示其中包含的类型的命名空间。没有
System.Web.Abstractions
命名空间,只是两个包含System.Web
命名空间中的类型的程序集。引用这两个程序集后,您可以使用以下单个 using 语句通过它们的非限定名称来引用这两种类型:
Make sure your project references the
System.Web.Abstractions
assembly which contains theHttpPostedFileBase
type.As confusing as it may seem, the
HttpPostedFile
type lives in a separate assembly (System.Web
) but the same exact namespace.It is important to remember that the namespaces can span assemblies and the name of an assembly does not necessarily dictate the namespace of the types contained in it. There is no
System.Web.Abstractions
namespace simply two assemblies that contain types in theSystem.Web
namespace.Once you have referenced both assemblies you can reference both types by their unqualified names with this single using statement:
谢谢,Andrew Hare,这成功了,但我相信从 .Net 4.0 等开始,System.Web.Abstractions 已被弃用,您应该添加对 System.web 的引用。
就我而言,这是最终的解决方案,在
起作用之后,因此 HttpPostedFileBase 被识别。
谢谢。
Thanks, Andrew Hare, that did the trick, yet I believe that from .Net 4.0 and so on, System.Web.Abstractions is deprecated, and you should add reference to System.web instead.
In my case, that was the ultimate solution, after that
worked, and therefore, HttpPostedFileBase was recognized.
Thanks.