2009-12-15 14 views
10

मैं CSLA साथ एक वितरित वातावरण में MVC नेट का उपयोग कर रहा हूँ और मैं कर सकते हैं संदर्भ HttpPostedFileBase अपने वेब परतों में से एक (जैसे Website.MVC) से है, लेकिन मैं नहीं कर सकते संदर्भ एक से HttpPostedFileBase अलग परत (इसे अन्यLayer.Web कहते हैं)।सी # - मैं संदर्भ नहीं दे सकता HttpPostedFileBase

किसी भी विचार पर मुझे HttpPostedFileBase पर कॉल करने में सक्षम होने के लिए क्या करना है? मैं दोनों परतों में HttpPostedFile का उपयोग करने में सक्षम हूं - क्या मुझे इसके बजाय इसका उपयोग करना चाहिए?

विधानसभा संदर्भ मूलतः एक ही हैं - Website.MVC में मेरे पास है:

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; 

उत्तर

26

सुनिश्चित करें कि आपके परियोजना का संदर्भ System.Web.Abstractions विधानसभा बनाओ जो HttpPostedFileBase प्रकार शामिल है।

ऐसा लगता है कि भ्रमित होने के रूप में, HttpPostedFile टाइप एक अलग असेंबली (System.Web) में रहता है लेकिन एक ही सटीक नामस्थान।

यह याद रखना महत्वपूर्ण है कि नामस्थान असेंबली फैल सकता है और असेंबली का नाम आवश्यक रूप से इसमें मौजूद प्रकारों के नामस्थान को निर्देशित नहीं करता है। System.Web.Abstractionsनामस्थान केवल दो असेंबली हैं जिनमें System.Web नामस्थान में प्रकार शामिल हैं।

एक बार जब आप दोनों विधानसभाओं आप इस एकल कथन का उपयोग के साथ अपने अयोग्य नामों से दोनों प्रकार संदर्भित कर सकते हैं संदर्भित किया है:

using System.Web; 
+0

किसी कारण मैं System.Web.Abstractions संदर्भ नहीं दे सकता के लिए मैं त्रुटि मिलती है असेंबली संदर्भ?) – Teddy

+0

हाय टेडी, आपकी टिप्पणी का मेरा जवाब बहुत लंबा था इसलिए मैंने अपनी पोस्ट को इसके बजाय अपडेट किया :) :) –

+0

ठीक है, मेरे सहकर्मी ने इसे बाहर निकाला - मुझे बस System.Web.Abstractions के संदर्भ को जोड़ना पड़ा अन्य Layer.Web में। मैं अब HttpPostedFileBase का संदर्भ दे सकता हूं। सहायता के लिए धन्यवाद! – Teddy

0

Make sure your project references the System.Web.Abstractions assembly which contains the HttpPostedFileBase type.

धन्यवाद, एंड्रयू हरे, कि चाल किया था, फिर भी मैं से कि विश्वास करते हैं .NET 4.0 और इसी तरह, System.Web.Abstractions को बहिष्कृत किया गया है, और आपको इसके बजाय System.web का संदर्भ जोड़ना चाहिए।

मेरे मामले में, कि काम अंतिम समाधान था, कि

using System.Web; 

के बाद, और इसलिए, HttpPostedFileBase मान्यता दी गई थी।

धन्यवाद। त्रुटि प्रकार या नाम स्थान का नाम 'चीजें' नाम स्थान 'System.Web' में मौजूद नहीं है (आप याद कर रहे हैं एक: -

संबंधित मुद्दे