का उपयोग करके घोषणा के क्रम में गुण प्राप्त करें मुझे कक्षा में घोषित क्रम में प्रतिबिंब का उपयोग करके सभी गुणों को प्राप्त करने की आवश्यकता है। MSDN के अनुसार, जब GetProperties()
प्रतिबिंब
GetProperties पद्धति का उपयोग करके इस तरह के वर्णमाला या घोषणा आदेश के रूप में एक विशेष क्रम में गुण, वापस नहीं करता है आदेश की गारंटी नहीं किया जा सकता।
लेकिन मैंने पढ़ा है कि MetadataToken
द्वारा गुणों का ऑर्डर करके एक कार्यवाही है। तो मेरा सवाल है, क्या यह सुरक्षित है? मुझे इसके बारे में एमएसडीएन पर कोई जानकारी नहीं मिल रही है। या इस समस्या को हल करने का कोई और तरीका है?
मेरे वर्तमान कार्यान्वयन इस प्रकार दिखता है:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);
वैसे भी, यह बुरा विचार है। ऑर्डर वैल्यू या किसी अन्य मेटाडेटा के साथ अपनी खुद की विशेषता बनाएं और उस विशेषता के साथ कक्षा के फ़ील्ड चिह्नित करें। –
आप शायद एक नई विशेषता जोड़ सकते हैं जिसमें ऑर्डर का एक int शामिल है। फिर गुण प्राप्त करें, प्रत्येक प्रॉपर्टी के DisplayOrderAttribute प्राप्त करें और उसमें सॉर्ट करें? – BlueChippy
जिज्ञासा से, आप यह क्यों कर रहे हैं, आप क्या हासिल करने की कोशिश कर रहे हैं? –