2012-10-04 13 views
5

रनटाइम के दौरान किसी ऑब्जेक्ट या क्लास के xmlroot को सेट करने का कोई तरीका है?क्या मैं विशेषताओं के बजाय कोड के माध्यम से XMLRoot निर्दिष्ट कर सकता हूं?

[XmlRoot("data")] 
public class MyRoot { 
    [XmlElement("bar")] 
    public List<RemoteHost> Hosts {get;set;} 
} 

मेरे पास इस मामले में कक्षा MyRoot को संशोधित करने का विकल्प नहीं है; इसलिए, मैं यह निर्दिष्ट करना चाहता हूं कि XmlSerializer का उपयोग करके एक्सएमएल को ऑब्जेक्ट को क्रमबद्ध करने से पहले मैं रूट नाम को "डेटा" कहूंगा।

उत्तर

9

हाँ! बस:

var serializer = new XmlSerializer(typeof(MyRoot), 
    new XmlRootAttribute("data")); 

या अधिक पूरी तरह से, XmlAttributeOverrides देखें। हालांकि, इनमें से किसी भी के साथ आप कैश और serializer उदाहरण का पुन: उपयोग करना चाहिए, अन्यथा आप असेंबली लीक करेंगे।

संबंधित मुद्दे

 संबंधित मुद्दे