के साथ सामान्य वर्गों का उपयोग करना मेरे पास एक सामान्य रेपॉजिटरी < टी > कक्षा है जिसे मैं ऑब्जेक्टडेटा स्रोत के साथ उपयोग करना चाहता हूं। रिपोजिटरी < टी > डेटाएप नामक एक अलग परियोजना में रहता है। this post from the MS newsgroups (प्रासंगिक नीचे की नकल की भाग) के अनुसार:ऑब्जेक्टडेटा स्रोत
आंतरिक रूप से, ObjectDataSource (स्ट्रिंग) Type.GetType बुला रहा है प्रकार प्राप्त करने के लिए, तो हम पर कैसे लिए दिशानिर्देश Type.GetType में दर्ज पालन करने की आवश्यकता जेनेरिक का उपयोग कर प्रकार प्राप्त करें। दस्तावेज़ से
http://msdn2.microsoft.com/en-us/library/w3f99sx1.aspx
, तुम सीखना होगा कि आप (`) को बैकटिक उपयोग करने की आवश्यकता प्रकार का नाम जो जेनरिक उपयोग कर रहा है को दर्शाता है: आप Type.GetType पर MSDN लाइब्रेरी का उल्लेख कर सकते।
इसके अलावा, हमें टाइप नाम स्ट्रिंग में असेंबली नाम निर्दिष्ट करना होगा।
TypeName = "TestObjectDataSourceAssembly.MyDataHandler`1 [System.String], TestObjectDataSourceAssembly"
ठीक है, समझ में आता है:
तो, अपने प्रश्न के लिए, इस सवाल का जवाब इस प्रकार की तरह प्रकार नाम का उपयोग करने के लिए है ।
<asp:ObjectDataSource ID="MyDataSource" TypeName="MyProject.Repository`1[MyProject.MessageCategory],DataAccess" />
: जब मैं यह कोशिश है, तथापि, पेज एक अपवाद फेंकता [InvalidOperationException:। प्रकार ObjectDataSource 'MyDataSource' की TypeName संपत्ति में निर्दिष्ट नहीं पाया जा सका]
उत्सुक बात यह है कि यह तब होता है जब मैं पृष्ठ देख रहा हूं। जब मैं वीएस -2008 डिजाइनर से "डेटा स्रोत कॉन्फ़िगर करें" संवाद खोलता हूं, तो यह मुझे मेरे जेनेरिक रिपोजिटरी क्लास पर उचित तरीके से दिखाता है। TypeName स्ट्रिंग को Type.GetType() पर पास करते हुए डिबगिंग भी वैध प्रकार देता है। तो क्या देता है?
<% Response.Write (टाइपऑफ (YourClassName) .AssemblyQualifiedName); %> –