asp.net mvc - c# execute code inside custom attribute -
संभव डुप्लिकेट:
हाय,
यह एक बहुत ही गूंगा प्रश्न की तरह लग सकता है और मुझे नहीं पता है कि यहां क्या संभव है क्योंकि नेट पर सभी "कस्टम एट्रिब्यूट" ट्यूटोरियल्स काफी समान हैं और वे इसका पता नहीं करते मैं करना चाहता हूँ। मैंने कुछ कोड को वहां देखा है जहां कोड को विशेष वर्गों के अंदर लिखा है, जैसे: और मैं सोच रहा हूं कि यह कोड कैसे कभी निष्पादित है।
अगर मेरे पास निम्न कोड का उदाहरण है:
< पूर्व> सार्वजनिक वर्ग का परीक्षण {[प्रतिबंधित वेबसाइट ("पंजीकृत सदस्य")] सार्वजनिक शून्य DoSomething () {// इस कोड को केवल तब निष्पादित किया जा सकता है यदि लॉग-इन उपयोगकर्ता // पंजीकृत सदस्य समूह का सदस्य है}} फिर कस्टम विशेषता प्रतिबंधित प्रतिबंधित गुण कुछ ऐसा होगा:
[विशेषता उपयोगकर्ता (विशेषता लक्ष्यीकरण विधि)] सार्वजनिक श्रेणी प्रतिबंधित विशेषता: सिस्टम। विशेषता {/// & lt ; सारांश & gt; /// इस कोड को आवश्यक भूमिका वाले उपयोगकर्ताओं के लिए प्रतिबंधित करें /// & lt; / summary & gt; /// & lt; param name = "requiredRole" & gt; इस विधि को निष्पादित करने के लिए आवश्यक भूमिका & lt; / param & gt; सार्वजनिक प्रतिबंधित विशेषता (स्ट्रिंग अपेक्षितरोल) {// मान्य करें कि सदस्य भूमिका में है, अन्यथा अपवाद फेंको नए सदस्य नॉट इनरोल अपवाद (आवश्यक रोल) को छोड़ दें; } सार्वजनिक नए स्ट्रिंग ToString () {वापसी "पहुँच की जरूरत है"; }}
अब समस्या यह है कि जब मैं परीक्षण निष्पादित करता हूं तो मुझे सदस्यनोट इनरोले एक्सपॉशन प्राप्त नहीं हो पाता। डॉस (कुछ) विधि।
शायद मैं सिर्फ कस्टम विशेषताओं की पूरी अवधारणा को याद कर रहे हैं, समझाने के लिए स्वतंत्र महसूस करें।
जिस तरह से आप गुणों को देख रहे हैं ठीक पहले, लेकिन फिर से सोचो। जो वास्तव में आप कर रहे हैं वह आपकी कक्षा को सजाने है या जो भी कुछ ऐसा काम करता है, जो इसके साथ काम करता है, निर्णय ले सकता है, ऐसा न हो कि कक्षा खुद निर्णय ले सकती है जिस तरह से आप एमवीसी में एक्शनफिल्टर एट्रिब्यूट्स का उपयोग कर सकते हैं, वैसे ही मेरे लिए यह कड़ी मेहनत की गई, जो कि वे कुछ करते हैं, लेकिन यह एक रूपरेखा है जो घटनाओं को उठाता है और इसके अनुसार विशेषता का उपयोग करता है। मैं आमतौर पर अपने प्रोग्राम के साथ काम करने के लिए टिप्पणियों के रूप में विशेषताओं के बारे में सोचने का प्रयास करता हूं।
Comments
Post a Comment