आप ExtendedXmlSerializer का उपयोग कर सकते हैं। आप एक वर्ग है, तो:
public class TestClass
{
public Dictionary<int, string> Dictionary { get; set; }
}
और इस वर्ग के उदाहरण बनाने के लिए:
var serializer = new ConfigurationContainer()
.UseOptimizedNamespaces() //If you want to have all namespaces in root element
.Create();
var xml = serializer.Serialize(
new XmlWriterSettings { Indent = true }, //If you want to formated xml
obj);
आउटपुट एक्सएमएल तरह दिखेगा::
var obj = new TestClass
{
Dictionary = new Dictionary<int, string>
{
{1, "First"},
{2, "Second"},
{3, "Other"},
}
};
आप इस वस्तु ExtendedXmlSerializer का उपयोग कर क्रमानुसार कर सकते हैं
<?xml version="1.0" encoding="utf-8"?>
<TestClass xmlns:sys="https://extendedxmlserializer.github.io/system" xmlns:exs="https://extendedxmlserializer.github.io/v2" xmlns="clr-namespace:ExtendedXmlSerializer.Samples;assembly=ExtendedXmlSerializer.Samples">
<Dictionary>
<sys:Item>
<Key>1</Key>
<Value>First</Value>
</sys:Item>
<sys:Item>
<Key>2</Key>
<Value>Second</Value>
</sys:Item>
<sys:Item>
<Key>3</Key>
<Value>Other</Value>
</sys:Item>
</Dictionary>
</TestClass>
आप nuget से ExtendedXmlSerializer स्थापित करने या निम्न आदेश चला सकते हैं:
Install-Package ExtendedXmlSerializer
या का उपयोग करें कि कोड: http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx – prostynick
क्या तरीकों/शब्दकोश में गुणों का अर्थ है कि इसे हैश टेबल के रूप में कार्यान्वित किया जाना चाहिए? शब्दकोश और आईडीकी कुंजी/वैल्यू जोड़े के संग्रह हैं और हैशटेबल कार्यान्वयन से अलग हैं। एक क्रमिक परिप्रेक्ष्य से हमारा लक्ष्य अस्थिर स्मृति से डेटा को बाद में लोड करने में सक्षम होने के लिए लगता है। एक इंटरफेस के एक अलग कंक्रीट कार्यान्वयन में * किसी भी * डेटा को फिर से लोड करने के परिणामस्वरूप विभिन्न व्यवहार होते हैं। – Jeremy
Serializing KeyValuePair काम नहीं करता है। आप एक खाली टैग के साथ खत्म हो जाएगा। देखें: https://stackoverflow.com/questions/2658916/serializing-a-list-of-key-value-pairs-to-xml – NullAndVoid