আমার আগের সমস্যাটি প্রসারিত করে , আমি সিদ্ধান্ত নিয়েছি (ডি) আমার কনফিগারেশন ফাইল শ্রেণিকে সিরিয়ালাইজ করার সিদ্ধান্ত নিয়েছে যা দুর্দান্ত কাজ করেছে।
আমি এখন ম্যাপ (কী ড্রাইভ লেটার হয়, মান নেটওয়ার্কের পথ) এবং ব্যবহার চেষ্টা করেছি ড্রাইভ বর্ণের একটি মিশুক অ্যারে সঞ্চয় করতে চান Dictionary
, HybridDictionary
এবং Hashtable
এই জন্য কিন্তু আমি সবসময় নিম্নলিখিত ত্রুটির যখন কলিং পেতে ConfigFile.Load()
বা ConfigFile.Save()
:
'App.ConfigFile' টাইপ প্রতিবিম্বিত করতে একটি ত্রুটি হয়েছিল। [স্নিপ] সিস্টেম.নাটসপোর্টড এক্সসেপশন: সদস্য অ্যাপটি ক্রমিকায়িত করা যায় না on কনফিগফিল.ম্যাপডড্রাইভ [স্নিপ]
আমি ডিকোরিজ এবং হ্যাশ টেবিল যা পড়েছি তা থেকে সিরিয়ালাইজ করা যেতে পারে, তবে আমি কী ভুল করছি?
[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
ক্লাসটি কী তা করতে পারে তা ভাবছেন । শুধু আউটপুটটি কিছুটা কুৎসিত।