अपनी पहले की समस्या पर विस्तार करते हुए , मैंने अपनी कॉन्फ़िग फ़ाइल क्लास को क्रमबद्ध (डी) करने का फैसला किया है , जिसने बहुत अच्छा काम किया है।
मैं अब मैप करने के लिए (कुंजी ड्राइव अक्षर है, मूल्य नेटवर्क पथ है) और उपयोग करने की कोशिश की है ड्राइव पत्र का एक साहचर्य सरणी संग्रहीत करना चाहते हैं Dictionary
, HybridDictionary
और Hashtable
इस के लिए लेकिन मैं हमेशा निम्न त्रुटि जब बुला पाने ConfigFile.Load()
या ConfigFile.Save()
:
'App.ConfigFile' प्रकार को प्रतिबिंबित करने में एक त्रुटि थी। [स्निप] System.NotSupportedException: सदस्य को क्रमबद्ध नहीं कर सकते। App.Configfile.mappedDrives [स्निप]
मैंने जो शब्दकोश और हैशटैब पढ़े हैं, उन्हें क्रमबद्ध किया जा सकता है, इसलिए मैं क्या गलत कर रहा हूं?
[XmlRoot(ElementName="Config")]
public class ConfigFile
{
public String guiPath { get; set; }
public string configPath { get; set; }
public Dictionary<string, string> mappedDrives = new Dictionary<string, string>();
public Boolean Save(String filename)
{
using(var filestream = File.Open(filename, FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
try
{
var serializer = new XmlSerializer(typeof(ConfigFile));
serializer.Serialize(filestream, this);
return true;
} catch(Exception e) {
MessageBox.Show(e.Message);
return false;
}
}
}
public void addDrive(string drvLetter, string path)
{
this.mappedDrives.Add(drvLetter, path);
}
public static ConfigFile Load(string filename)
{
using (var filestream = File.Open(filename, FileMode.Open, FileAccess.Read))
{
try
{
var serializer = new XmlSerializer(typeof(ConfigFile));
return (ConfigFile)serializer.Deserialize(filestream);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.ToString());
return new ConfigFile();
}
}
}
}
DataContractSerializer
वर्ग सोच रहा था कि ऐसा कर सकते हैं। बस आउटपुट थोड़ा बदसूरत है।