7

में टाइप सूची की प्रोफ़ाइल प्रॉपर्टी का उपयोग करके मैं एक सी # वेबसाइट पर काम कर रहा हूं जिसे प्रमाणीकरण के साथ-साथ भूमिकाएं और प्रोफाइल प्रबंधन प्रदान करने की आवश्यकता है। मुझे प्रत्येक प्रोफाइल की प्रकार सूची की संपत्ति रखने की आवश्यकता है। ,.NET सदस्यता

<profile defaultProvider="MyProfileProvider" enabled="true"> 
    <providers> 
    <remove name="MyProfileProvider"/> 
    <add connectionStringName="MySqlServer" 
     applicationName="MyApp" 
     name="MyProfileProvider" 
     type="System.Web.Profile.SqlProfileProvider" /> 
    </providers> 
    <properties> 
    <add name="Websites" type="System.Collections.Generic.List&lt;String&gt;" serializeAs="Binary"/> 
    </properties> 
</profile> 

हालांकि जब मैं वेब सेवा शुरू करने और है कि संपत्ति यह निम्नलिखित त्रुटि देता है तक पहुँचने का प्रयास: web.config में प्रोफ़ाइल अनुभाग इस तरह दिखता है

System.Configuration.ConfigurationErrorsException: करने का प्रयास इस प्रॉपर्टी के प्रकार को लोड करने के परिणामस्वरूप निम्न त्रुटि हुई: 'System.Collections.Generic.List < स्ट्रिंग >' टाइप नहीं किया जा सका। (सी: \ प्रोजेक्ट्स \ MyProject \ web.config लाइन 58) ---> System.Web.HttpException: प्रकार 'System.Collections.Generic.List < स्ट्रिंग >' लोड नहीं हो सका।

क्या इस उद्देश्य के लिए सामान्य संग्रह का उपयोग करने का कोई तरीका है?

उत्तर

11

अधिक खोज के बाद मैं अंत में जवाब ढूंढने में कामयाब रहा। समाधान अपने नामस्थान द्वारा योग्य प्रकार के नाम का उपयोग करना है। इसका मतलब यह है कि मेरी समस्या के लिए मैं प्रयोग किया है:

<add name="Websites" type="System.Collections.Generic.List`1[System.String]" serializeAs="Binary"/> 

मैं भी पता चला कि यह भी अन्य विधानसभाओं में परिभाषित वर्गों निर्दिष्ट करने के लिए संभव है। उन लोगों का उपयोग करने के लिए आपको असेंबली-योग्य नाम की आवश्यकता है। उदाहरण के लिए, यह "System.Collections.Generic.HashSet`1 [[System.String, mscorlib, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089]], System.Core, Version = 3.5.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089 "स्ट्रिंग्स के हैशसेट के लिए।

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