C # - Ich kann nicht Referenz HttpPostedFileBase
-
19-09-2019 - |
Frage
Ich verwende MVC .NET in einer verteilten Umgebung mit CSLA und ich können Referenz HttpPostedFileBase von einem meiner Web-Schichten (zB Website.MVC), aber ich kann nicht Referenz HttpPostedFileBase aus einer separaten Schicht (nennen wir es OtherLayer.Web).
Jede Idee, was ich tun muss der Lage sein, HttpPostedFileBase zu nennen? Ich bin in der Lage HttpPostedFile in beiden Schichten zu verwenden - soll ich das nur statt
?Die Montage Referenzen sind grundsätzlich die gleichen - in Website.MVC ich habe:
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;
Während in meiner anderen Schicht i haben:
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;
Lösung
Stellen Sie sicher, dass Ihre Projektreferenzen der System.Web.Abstractions
Anordnung, die enthält die HttpPostedFileBase
Art.
Wie verwirrend wie es scheinen mag, die HttpPostedFile
Art lebt in einer separaten Assembly (System.Web
), aber exakt den gleichen Namensraum.
Es ist wichtig, sich daran zu erinnern, dass die Namensräume Baugruppen umfassen kann und der Name einer Baugruppe diktieren nicht unbedingt der Namensraum der Typen darin enthalten sind. Es gibt keine System.Web.Abstractions
Namespace einfach zwei Baugruppen, die Typen in der System.Web
Namespace enthalten.
Sobald Sie beide Baugruppen referenziert haben Sie beiden Arten von ihren unqualifizierten Namen mit dieser einzigen Anweisung using verweisen können:
using System.Web;
Andere Tipps
Stellen Sie sicher, dass Ihre Projektreferenzen des System.Web.Abstractions Anordnung, welche den HttpPostedFileBase Typen enthält.
Danke, Andrew Hare, dass der Trick, aber ich glaube, dass von .NET 4.0 und so weiter, System.Web.Abstractions veraltet ist, und Sie sollten Bezug auf System.web statt hinzuzufügen.
In meinem Fall, das war die ultimative Lösung, danach
using System.Web;
gearbeitet, und deshalb HttpPostedFileBase erkannt wurde.
Danke.