Pregunta

Estoy puedo usando MVC NET en un entorno distribuido con CSLA y I referencia HttpPostedFileBase de una de mis capas de banda (por ejemplo Website.MVC), pero I puedo no referencia HttpPostedFileBase de una capa separada (permite llaman OtherLayer.Web).

Cualquier idea sobre lo que tengo que hacer para ser capaz de llamar HttpPostedFileBase? Soy capaz de utilizar HttpPostedFile en ambas capas - ¿debo utilizar este lugar

?

Las referencias de ensamblado son básicamente los mismos - en Website.MVC tengo:

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;

Mientras que en mi otra capa que tengo:

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;
¿Fue útil?

Solución

Asegúrese de que el proyecto hace referencia al ensamblado que contiene el System.Web.Abstractions HttpPostedFileBase tipo .

Como confuso que pueda parecer, el HttpPostedFile tipo vive en un conjunto separado (System.Web) pero el mismo espacio de nombres exacta.

Es importante recordar que los espacios de nombres pueden abarcar asambleas y el nombre de un montaje no necesariamente dictar el espacio de nombres de los tipos contenidos en ella. No hay ninguna System.Web.Abstractions espacio de nombres simplemente dos ensamblados que contienen tipos en el espacio de nombres System.Web.

Una vez que haya referenciado ambos conjuntos se puede hacer referencia a ambos tipos por sus nombres no calificados con esta sola instrucción using:

using System.Web;

Otros consejos

  

Asegúrese de que el proyecto hace referencia a la asamblea System.Web.Abstractions que contiene el tipo HttpPostedFileBase.

Gracias, Andrew Hare, que resolvieron el problema, sin embargo, creo que a partir de .Net 4.0 y así sucesivamente, System.Web.Abstractions está en desuso, y se debe añadir una referencia a System.web lugar.

En mi caso, esa fue la última solución, después de eso

using System.Web;

trabajadas, y por lo tanto, HttpPostedFileBase fue reconocido.

Gracias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top