मेरे पास यह कोड है, जो किसी ऑब्जेक्ट को फ़ाइल में क्रमबद्ध करता है। मैं प्रत्येक एक्सएमएल विशेषता को अलग लाइन पर आउटपुट करने की कोशिश कर रहा हूं। कोड इस तरह दिखता है:मैं XmlTextWriter में सेटिंग प्रॉपर्टी कैसे सेट करूं, ताकि मैं प्रत्येक एक्सएमएल विशेषता को अपनी लाइन पर लिख सकूं?
public static void ToXMLFile(Object obj, string filePath)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
XmlWriterSettings settings = new XmlWriterSettings();
settings.NewLineOnAttributes = true;
XmlTextWriter writer = new XmlTextWriter(filePath, Encoding.UTF8);
writer.Settings = settings; // Fails here. Property is read only.
using (Stream baseStream = writer.BaseStream)
{
serializer.Serialize(writer, obj);
}
}
केवल समस्या है, XmlTextWriter
वस्तु की Settings
संपत्ति है केवल पढ़ने के लिए।
ऑब्जेक्ट पर Settings
संपत्ति को मैं कैसे सेट करूं, ताकि NewLineOnAttributes
सेटिंग काम करेगी?
ठीक है, मैंने सोचा कि मैं एक XmlTextWriter
की जरूरत है, के बाद से XmlWriter
एक abstract
वर्ग है। अगर आप मुझसे पूछें तो किंडा भ्रमित है। अंतिम काम कर कोड यहाँ है:
/// <summary>
/// Serializes an object to an XML file; writes each XML attribute to a new line.
/// </summary>
public static void ToXMLFile(Object obj, string filePath)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
using (XmlWriter writer = XmlWriter.Create(filePath, settings))
{
serializer.Serialize(writer, obj);
}
}
यह दृष्टांत नहीं किया। यह कहता है कि इसे निष्पादित किया गया, लेकिन बनाई गई वस्तु शून्य है। नोट: मैंने 'XmlTextWriter लेखक = XmlWriter.Create (filePath, सेटिंग्स) XmlTextWriter के रूप में उपयोग किया; ' –
@RobertHarvey - इसका अर्थ है कि' XmlWriter.Create (...) '' XmlTextWriter' नहीं बनाता है। जब आप आउटपुट देखते हैं, तो आप पाएंगे कि यह 'XmlWellFormedWriter' लौटाता है। हालांकि यह 'XmlWriter' की तरह व्यवहार करना बुद्धिमान होगा। – Polity
तो मैं इसे 'XmlTextWriter' पर कैसे प्राप्त करूं? –