C# - HTTPPOSTEDFILEBASE를 참조 할 수 없습니다
-
19-09-2019 - |
문제
CSLA와 함께 분산 환경에서 MVC .NET을 사용하고 있습니다. ~할 수 있다 내 웹 레이어 중 하나 (예 : 웹 사이트 .mvc)의 httppostedfilebase를 참조하십시오. 할 수 없습니다 별도의 레이어에서 httppostedfilebase를 참조하십시오 (OtherLayer.web라고 부르십시오).
httppostedfilebase를 호출하기 위해 무엇을 해야하는지에 대한 아이디어가 있습니까? 두 레이어에서 httppostedfile을 사용할 수 있습니다. 대신 사용해야합니까?
어셈블리 참조는 기본적으로 동일합니다 - 웹 사이트 .mvc i가 있습니다.
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;
해결책
프로젝트를 참조하십시오 System.Web.Abstractions
포함 된 어셈블리 HttpPostedFileBase
유형.
그것이 보일 수있는만큼 혼란 스럽습니다 HttpPostedFile
유형은 별도의 어셈블리에 살고 있습니다 (System.Web
)하지만 정확히 정확한 네임 스페이스.
네임 스페이스는 어셈블리에 걸쳐있을 수 있으며 어셈블리의 이름이 반드시 포함 된 유형의 네임 스페이스를 지시하는 것은 아닙니다. 아니요 System.Web.Abstractions
네임 스페이스 단순히 유형의 유형을 포함하는 두 개의 어셈블리 System.Web
네임 스페이스.
두 어셈블리를 참조하면이 단일 명령문을 사용하여 자격을 갖춘 이름으로 두 유형을 모두 참조 할 수 있습니다.
using System.Web;
다른 팁
프로젝트에서 HTTPPOSTEDFILEBASE 유형이 포함 된 System.Web.AbStractions 어셈블리를 참조하십시오.
감사합니다. Andrew Hare, 그것은 트릭을했지만 .NET 4.0 등에서 System.Web.AbStractions가 더 이상 사용되지 않았으며 대신 System.Web에 대한 참조를 추가해야한다고 생각합니다.
제 경우에는 그것이 궁극적 인 해결책이었습니다.
using System.Web;
따라서 HTTPPOSTEDFILEBASE가 인식되었습니다.
감사.