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;
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top