SharePoint विस्तार के लिए तरीके लेखन
विस्तार तरीकों एक दुर्जेय प्रोग्रामिंग निर्माण किया है कि कार्यान्वयन मतिहीनता बढ़ाने और कोड के घटकों modularize, कि एक ही अंतराल बंद एपीआई, में मौजूद एक यह है कि SharePoint प्रदान करता है, जैसे हो सकता है भरने के लिए अच्छी तरह से उधार हैं. अक्सर कई बार एक विशेष तरीका है कि एक विशेष प्रकार पर वांछनीय है हो सकता है, लेकिन इसे प्रदान करने में उपलब्ध नहीं हैं के लिए विकल्प एपीआई कारण जहाज सील और अन्य modifies. विस्तार विधियों का प्रयोग, यह संभव है इस सीमा बायपास, जबकि एक स्वच्छ क्रियान्वयन कि गहरी विरासत पेड़ संदर्भ बचने कर सकते हैं बनाए रखने.
विस्तार विधियों भाग रहे हैं तेजी से महत्वपूर्ण SharePoint साथ जब काम प्रकार जनादेश अनुकूलन सामान्य रूप से कोड के कारण होता है जिसे वस्तुओं के बहुमत पर उदाहरण के लिए व्यवहार, जिससे negating SPList संभव है, परिवर्तन का उपयोग सजाया के साथ एक मोहरबंद. यह सबसे अधिक ध्यान देने योग्य है जब आप नकली वस्तुओं, के साथ काम कर रहे हैं जो बाहर कुछ व्यवस्थाएं (यानी TypeMock) एक unsealed वर्ग की आवश्यकता होती है और एक डिफ़ॉल्ट निर्माता है.
के रूप में वर्ग परिभाषा के भीतर विधि उपलब्ध कराने का विरोध किया, एक विस्तार विधि बस एक संघ द्वारा परिभाषित किया गया है और एक अलग स्थिर आंशिक वर्ग द्वारा समर्थित वर्ग में निहित constructs (यानी यह मौजूदा दायरे में एक namespace में मौजूद होना चाहिए). इस पद्धति को ही उदाहरण विधि वाक्यविन्यास का उपयोग लागू है, की अनुमति कोड में कुछ स्तर सुपरिचय constructs. जबकि स्थैतिक विधि है, यह उदाहरणों पर ही कहा जा सकता है के रूप में परिभाषित मापदंडों. संक्षेप में, एक विस्तार विधि की अनुमति देगा एक विधि का एक वर्ग में इंजेक्शन है, तो यह घोषित किया जाता है जैसे कि यह उसका हिस्सा है.
आदेश में विधि एक्सटेंशन तरीकों की वजह अस्पष्टता को कम करने के लिए किया जा रहा विधि नाम से ही परिभाषित है, यह महत्वपूर्ण है को ध्यान में वास्तव में उपयुक्त नामकरण परिपाटी लें (अगर हस्ताक्षर ही विस्तार हो! नजरअंदाज कर दिया जाएगा) है. इसके अलावा, SharePoint प्रकार लागू किया जाएगा कोर्स के रूप में MSFT द्वारा जारी API का संशोधन करने के लिए विषय के हैं. इसलिए, जब एपीआई परिवर्तन, वहाँ पीछे संगतता के वांछित स्तर है. नहीं हो सकता
एक विस्तार विधि के लिए वाक्यविन्यास बहुत ही सरल है (यह महत्वपूर्ण है ध्यान दें करने की आवश्यकता है कि जब VB.NET विस्तार करने के लिए परिभाषित किया जा विशेषता है, सी # नहीं करता है. हालाँकि सी में # हम / वापसी मूल्य वस्तु की एक प्रतिलिपि बनाने के लिए मजबूर कर रहे हैं यह तो यह evens बाहर!).
- Extensions सार्वजनिक स्थैतिक कक्षा Extensions
- (
- this Type type ) सार्वजनिक स्थैतिक प्रकार DoSomething (इस प्रकार के प्रकार)
- (
- / / चलो जा पाने के लिए कुछ!
- )
- )
आप देख सकते हैं कि कक्षा में स्थिर Extensions DoSomething विधि आपरिवर्तक अपनी कीवर्ड इस एकमात्र पैरामीटर सजाया के साथ, का विस्तार करने के संकेत जाएगा टाइप करने के लिए जो तरीका यह. तो,) के लिए उदाहरण के विस्तार जब लेखन तरीकों अनुपूरक वर्ग (किसी को बिना SPList का विस्तार करने के मानकों, हमारे वर्ग इस तरह होगा:
- Extensions सार्वजनिक स्थैतिक कक्षा Extensions
- (
- this SPList list ) सार्वजनिक स्थैतिक प्रकार DoSomething (इस SPList सूची)
- (
- / / चलो जा पाने के लिए कुछ!
- )
- )
लेकिन इतना भी नहीं कर रही है, तो चलो एक और अधिक व्यावहारिक उदाहरण लेते हैं.
आइटम्स में नीचे, मैं मान रहा हूँ कि एक आवेदन के भीतर SPList पर, वस्तुओं, संशोधित मैं वर्तमान हूँ के लिए जा रहा हो अक्सर reordering में उदाहरण SPListItem संग्रह द्वारा एक अवरोही क्रम दिनांक, और तब पुन: प्राप्त 5 पिछले.
HarvestLastFive में, यह ध्यान देने योग्य है कि मैं कर रहा हूँ सबसे पहले प्रकार को निर्दिष्ट करने के लिए प्रकार SPList इस खोजशब्द के साथ लक्ष्य से इस्तेमाल करते हैं. के बाद, मैं आदेश दे रहा हूँ संभाल करने के लिए संपत्ति इमारत एक SPListItemCollection की, SPList.Items SPBuiltInFieldId.Modified का उपयोग करता है तो जो विधि LINQ OrderByDescending में संयोजन के साथ. अन्त में, संग्रह बाहर ले जाओ के संशोधित आइटम 5 रिटर्न पहले. अगर तुम सिर्फ बयान करना चाहता था reordering बाहर ले जाओ (एक किस्म की संशोधक का उपयोग इस तरह के LINQ संग्रह एक्सटेंशन मैं दैनिक उपयोग के लिए बढ़ाया ले हेरफेर सिर्फ समर्थन) कि तुम.
- Extensions सार्वजनिक स्थैतिक कक्षा Extensions
- (
- this SPList typeToTarget ) सार्वजनिक स्थैतिक IEnumerable <SPListItem> HarvestLastFive (इस SPList typeToTarget)
- (
- कोशिश
- (
- SPListItemCollection संग्रह = typeToTarget. आइटम;
- x => x [ SPBuiltInFieldId. Modified ] ) . Take ( 5 ) ; var = finalCollection tempCollection. OrderByDescending (x => एक्स [SPBuiltInFieldId संशोधित.)]. 5 लो ();
- वापसी finalCollection;
- )
- Exception exception ) पकड़ (अपवाद अपवाद)
- (
- )
- वापसी बातिल;
- )
- )
आप तीर Extensions के सदस्यों के वर्ग में देख सकते हैं, कि HarvestLastFive नीचे तरीका है एक छोटे से अलग (चिह्न), जो विधि निर्दिष्ट एक्सटेंशन के रूप में यह एक.

एक वर्ग में अन्य पद्धति का उपयोग करके उस प्रकार पर उपलब्ध तरीकों को analgous है. उदाहरण के लिए, विधि HarvestLastFive रूप ले लेता है पर:
- सार्वजनिक स्थैतिक शून्य (TestingExtensionMethod)
- (
- . Lists [ "My List" ] ; SPList सूची SPContext;. वेब वर्तमान.. सूची ["मेरी सूची"];
- ; var संग्रह = सूची HarvestLastFive. ();
- / क्या / जो आप चाहते हैं!
- )
दृश्य स्टूडियो के अंतर्गत, इस विधि उपसर्ग (विस्तार के साथ Tooltip पर एक विस्तार विधि के रूप में विख्यात है).

यह आप विस्तार तरीकों पर जा पाने के लिए पर्याप्त देना चाहिए. मैं अपने आम विस्तार विधियों कि मैं शीघ्र ही साथ SharePoint का उपयोग करने के कुछ पोस्टिंग हो जाएगा, जैसा कि इस के लिए एक परिचय होना चाहिए था.
4 टिप्पणियाँ »
पोस्ट. इस पर टिप्पणियों के आरएसएस फ़ीड के लिए TrackBack यूआरएल
































इस पोस्ट में [...] भी है क्योंकि लोगों ने कहा कि वे एक अधिक पुन: प्रयोज्य विस्तार विधि (अधिक यहाँ) उदाहरण है कि SharePoint में उपयोग आवश्यक है. Tyrants! जबकि मैं एक कोड की समीक्षा करें कि SharePoint कैलेंडर के क्षेत्रों मैं इस मुद्दे को आ पाया कुछ में उपयोग कर रहा था. जब गुजर SPUtility.FormatDate में तारीख पैरामीटर यह उम्मीद है कि यह UTC में हो जाएगा मेरे विशेष मामले में अच्छी तरह के रूप में मैं दूसरों की कल्पना होगा, गलत था क्योंकि यह स्थानीय समय के रूप में संग्रहीत किया गया था, जो. इस SPWeb.RegionalSettings.TimeZone वर्ग, जो उचित विश्लेषण की अनुमति देने के SPWeb वस्तुओं पर घटित करने के लिए उपयुक्त रूपांतरण का समर्थन करेंगे द्वारा प्रदान की पद्धतियों का उपयोग करके दूर किया जा सकता है. [...]
Pingback द्वारा SharePoint आश्रय विधि »Blog Archive एक्सटेंशन» (UTC का प्रयोग करने के लिए याद है जब SPUtility.FormatDate) - 29 सितम्बर, 2008 @ 11:17
[...] Interesante मृत्यु के डी एडम Buenz About के Como construir métodos डे विस्तार पैरा SharePoint. [...]
Pingback द्वारा WSS 3.0 और काई: Recopilatorio डे enlaces interesantes (XXII «! जुनून पोर ला tecnología ...) - 4 नवंबर, 2008 @ 8:51
[...] इस के लिए एक कदम और आगे ले रहा है तकनीक है कि एडम Buenz SharePoint विस्तार के लिए तरीके लेखन पसंद SPList वर्ग में शामिल है तो पर के बारे में blogged का उपयोग कर: [...]
Pingback द्वारा iSea () उपयोगकर्ताओं के लिए ही आइपॉड और iTouch - 1 फ़रवरी 2009 @ 12:57
[...] विधि करने के लिए एक्सटेंशन तरीके लेखन के द्वारा SPList वस्तु का विस्तार है. यह यहाँ है, बहुत धन्यवाद एडम Buenz करने के लिए वर्णित है Nadine Storandt के तहत दायर: काई, [...] द्वारा 09, 2009 16:20 अक्टूबर तैनात
Pingback द्वारा SPList developers.de है कोई डिफ़ॉल्ट संपत्ति Nadine यूआरएल है - पोस्ट - - अक्टूबर 9, 2009 @ 7:35