मैंने अभी एक Nuget पैकेज प्रकाशित किया है जो न केवल पहले स्तर के गुण स्थापित करने की अनुमति देता है, बल्कि किसी भी गहराई में दिए गए ऑब्जेक्ट में नेस्टेड गुण भी रखता है।
यहाँ पैकेज है
किसी वस्तु के गुण का मान उसके मूल से निर्धारित करता है।
ऑब्जेक्ट एक जटिल ऑब्जेक्ट हो सकता है और संपत्ति मल्टी लेवल डीप नेस्टेड संपत्ति हो सकती है या यह सीधे रूट के तहत एक संपत्ति हो सकती है। ObjectWriterप्रॉपर्टी पाथ पैरामीटर का उपयोग कर संपत्ति ढूंढेगा और उसके मूल्य को अपडेट करेगा। प्रॉपर्टी पाथ रूट से अंतिम छोर तक जाने वाली प्रॉपर्टीज का नाम है, जिसे हम सेट करना चाहते हैं, जिसे सीमांत स्ट्रिंग पैरामीटर द्वारा सीमांकित किया गया है।
उपयोग:
ऑब्जेक्ट रूट के तहत सीधे गुण स्थापित करने के लिए:
अर्थात। LineItemवर्ग के पास एक अंतर संपत्ति है जिसे कहा जाता हैItemId
LineItem lineItem = new LineItem();
ObjectWriter.Set(lineItem, "ItemId", 13, delimiter: null);
नेस्टेड संपत्ति को ऑब्जेक्ट रूट के नीचे कई स्तरों पर स्थापित करने के लिए:
अर्थात। Inviteवर्ग के पास एक संपत्ति होती है State, जिसमें एक संपत्ति होती है जिसे Invite(इनवाइट प्रकार का) कहा जाता है Recipient, जिसमें एक संपत्ति होती है, जिसे एक संपत्ति कहा जाता है Id।
चीजों को और अधिक जटिल बनाने के लिए, Stateसंपत्ति एक संदर्भ प्रकार नहीं है, यह एक है struct।
यहां बताया गया है कि आप एक ही लाइन में ऑब्जेक्ट ट्री के निचले भाग में ईद प्रॉपर्टी ("आउटलुक" को स्ट्रिंग मान पर) कैसे सेट कर सकते हैं।
Invite invite = new Invite();
ObjectWriter.Set(invite, "State_Invite_Recipient_Id", "outlook", delimiter: "_");
var val = Convert.ChangeType(propValue, propInfo.PropertyType);स्रोत: devx.com/vb2themax/Tip/19599