C # - Eu não pode fazer referência HttpPostedFileBase
-
19-09-2019 - |
Pergunta
Eu estou usando MVC .NET em um ambiente distribuído com CSLA e eu pode referência HttpPostedFileBase de uma das minhas camadas da web (por exemplo Website.MVC), mas eu não pode HttpPostedFileBase referência a partir de uma camada separada (que chamaremos de OtherLayer.Web).
Qualquer idéia sobre o que eu preciso fazer para ser capaz de chamar HttpPostedFileBase? Eu sou capaz de usar HttpPostedFile em ambas as camadas - devo apenas usar isso em vez
?As referências de montagem são basicamente os mesmos - em Website.MVC eu tenho:
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;
Considerando que na minha outra camada eu tenho:
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;
Solução
Certifique-se de suas referências do projeto da montagem System.Web.Abstractions
que contém o HttpPostedFileBase
tipo .
Como confuso que possa parecer, o HttpPostedFile
tipo de vida em um assembly separado (System.Web
), mas o mesmo espaço exato.
É importante lembrar que os namespaces podem se estender por assembléias e o nome de um conjunto não necessariamente ditar o namespace dos tipos nele contidas. Não há System.Web.Abstractions
namespace simplesmente dois conjuntos que contêm tipos no namespace System.Web
.
Depois de ter referenciado ambas as montagens que você pode fazer referência ambos os tipos por seus nomes não qualificados com esta única instrução usando:
using System.Web;
Outras dicas
Certifique-se de suas referências do projeto os System.Web.Abstractions montagem que contém o tipo HttpPostedFileBase.
Obrigado, Andrew Hare, que fez o truque, mas eu acredito que a partir de .Net 4.0 e assim por diante, System.Web.Abstractions está obsoleta, e você deve adicionar referência a System.web vez.
No meu caso, essa foi a solução definitiva, depois disso
using System.Web;
funcionou, e, portanto, HttpPostedFileBase foi reconhecido.
Graças.