मैं सी # में एक काफी छोटी कक्षा संरचना में एक्सएमएल क्रमबद्धता जोड़ने की कोशिश कर रहा हूं। मूलतः, वहाँ एक रूट वर्ग (यह Aclass कहते हैं), जो कुछ अन्य वर्ग के कई उदाहरण की एक सूची रखती का एक उदाहरण है (यह AnotherClass कहते हैं):आंतरिक संशोधक के साथ घोषित कक्षाओं की धारावाहिक सूची <>?
[XmlRoot("RootNode")]
public class AClass {
[XmlElement("ListNode")]
internal List otherObjects { get; set; }
}
public class AnotherClass {
[XmlAttribute("Name")]
internal string name { get; set; }
}
जब serializing, मैं इन दोनों के लिए करना चाहते हैं कक्षाओं को एक साथ क्रमबद्ध करने के लिए - यानी, अगर मैं एसीलास को क्रमबद्ध करता हूं, तो इसकी अन्य सूची की सूची भी क्रमबद्ध हो जाती है (this question देखें)।
मैं यह ज्यादातर काम कर रहा है, लेकिन समस्या यह है कि क्रमांकन के दौरान, XmlSerializer केवल वर्ग के public
गुण के साथ सौदा करना चाहते हैं लगता है - यह AnotherClass को क्रमानुसार नहीं है सब पर अगर सूची internal
घोषित किया जाता है।
मैं विधानसभा के internals serializer को दिखाई बनाने की कोशिश की:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Xml")]
कि कुछ भी करने को नहीं मालूम था। क्या कोई तरीका है कि मैं XmlSerializer को उन वस्तुओं की सूचियों को क्रमबद्ध रूप से क्रमबद्ध करने के लिए प्राप्त कर सकता हूं जिन्हें आंतरिक घोषित किया गया है?
प्रश्न के लिए +1 क्योंकि धारणा यह है कि संपत्तियों को सार्वजनिक होना चाहिए * क्योंकि यही हमें बताया गया है *। कभी-कभी मुझे लगता है कि हम में से कई उस बिंदु पर रुकते हैं जहां हमें बताया जाता है कि हम विकल्पों के बिना कुछ नहीं कर सकते हैं। – IAbstract