c# - Is it possible sort a type's properties returned from Type.GetProperties() using attributes? -
के अनुसार,
Type.GetProperties () GetProperties विधि एक विशिष्ट क्रम में संपत्ति वापस नहीं करता है, जैसे वर्णानुक्रमिक या घोषणा आदेश। आपका कोड उस आदेश पर निर्भर नहीं होना चाहिए जिसमें गुण लौटाए गए हैं, क्योंकि वह ऑर्डर बदलता है।
गुणों को किसी तरह से टिप्पणी कर सकते हैं (कस्टम विशेषता, हो सकता है) ताकि आप कुछ कर सकें इस तरह से?
var गुण = प्रकार (myClass) .GetProperties ()। एएनएनमेरेबल ()। आदेशबी (Func & lt; VoodooOrdinalAttribute & gt;);
के साथ
पब्लिक क्लास मायक्लास {[वूडूऑर्डिनल एट्रिब्यूट (2)] सार्वजनिक स्ट्रिंग रंग {get; सेट;} [वूड आइडिनल एट्रिब्यूट (3)] सार्वजनिक स्ट्रिंग आकृति {प्राप्त; सेट;} [वूडूऑर्डिनल एट्रिब्यूट (1)] सार्वजनिक स्ट्रिंग मास {प्राप्त; सेट {}}
और यह
सार्वजनिक वर्ग VoodooOrdinalAttribute: विशेषता {सार्वजनिक VoodooOrdinalAttribute (int ordinal) { यह। ऑर्डिनल = क्रमानुसार; } सार्वजनिक अनिर्णनीय {प्राप्त; सेट;
रंग आकार और प्रॉपर्टी का क्रम
- मास
- Li>
हां, आप गुणों को ऑर्डर करने के लिए एक विशेषता का उपयोग कर सकते हैं। आप की तरह आप अपने उदाहरण में किया था एक प्रयोग के साथ एक विशेषता को परिभाषित करते हैं, तो यहाँ एक LINQ क्वेरी जो गुण संख्या विशेषता में निर्दिष्ट द्वारा विशेषता है कि आदेश देता है।
वर propertyData = प्रोप से में typeof (MyClass) .GetProperties () जाने voodooOrdinalAttribute = Attribute.GetCustomAttribute (प्रोप, typeof (VoodooOrdinalAttribute)) VoodooOrdinalAttribute के रूप में जहां voodooOrdinalAttribute = बातिल का चयन प्रोप आरोही जाने lineOrder = voodooOrdinalAttribute.Ordinal orderby lineOrder;
Comments
Post a Comment