2010-05-10 11 views
13

सबसे पहले, मैं अंतर्निहित सक्रिय निर्देशिका के खिलाफ संचालन के लिए खुद को एक सामान्य प्रकार लिखना चाहता हूं।सी # के किसी भी वीबीएनईटी समकक्ष जहां सामान्य बाधा कीवर्ड?

आप में से जो लोग ई और System.DirectoryServices namespace के बारे में जानते हैं, DirectoryEntry class शीर्ष सबसे DirectorySearcher वर्ग के साथ साथ महत्वपूर्ण है।

एडी भाषा बोलते समय, सब कुछ DirectoryEntry है। इसके साथ ही, मेरे आवेदन को उपयोगकर्ता, समूह और संगठनात्मक इकाइयों (ओयू) का प्रबंधन करने की आवश्यकता है। इनमें से प्रत्येक वस्तु एडी प्रविष्टियां हैं। फिर, यह मुझे GenericTypes के लिए एक अच्छा उम्मीदवार लगता है।

यह क्या मैं पूरा करने के लिए इच्छा है:

public interface ITop { 
    string Path { get; set; } 
    string ObjectClass { get; } 
    string ContainerName { get; set; } 
    // [...] 
} 

public interface IGroup : ITop { 
    // Speciality properties here... 
} 

public interface IUser : ITop { 
    // Speciality properties here... 
} 

// And so forth... 

public sealed class DirectorySource<T> where T : ITop { 
    // Methods against AD here... 
} 

मेरे वर्ग पुस्तकालय निम्नलिखित organical कसौटी का जवाब देना होगा:

  1. VS2005 VBNET
  2. .NET 2.0
  3. सक्रिय निर्देशिका
  4. विंडोज फॉर्म

अच्छा, मुझे लगता है कि मैंने अपने प्रश्न के उद्देश्य के लिए पहले से ही बहुत अधिक विवरण दिए हैं, लेकिन वास्तुकला और डिजाइन पैटर्न पर कोई भी सुझाव स्वागत है। मेरा सवाल है:

क्या C# where (generic type constraint) कीवर्ड का कोई VBNET 2.0 समकक्ष है, या कोई सर्वोत्तम अभ्यास कार्यवाही है?

मेरी खोजों के परिणाम पूर्ववत निष्कर्ष के साथ समाप्त होने लगते हैं। तो मैं पूछ रहा हूँ ...

उत्तर

35
इस तरह

:

Public Class DirectorySource(Of T As ITop) 

एकाधिक कमी इस तरह, ब्रेसिज़ द्वारा संलग्न हैं:

Public Class DirectorySource(Of T As { ITop, IDisposable, Class, New }) 
+1

आपको लगता है कि होता है कि यह इस 'की तरह कुछ होगा निम्नलिखित मदों में से एक के रूप में टी, आईडीस्पोजेबल, कक्षा, नया ' – ChaosPandion

+6

@CoosPandion: जेनेरिक बाधाएं अंडे नहीं हैं। – SLaks