PDA

View Full Version : مبتدی: ذخیره مقادیر در فایل xml



CodeforLife
جمعه 20 فروردین 1395, 09:12 صبح
سلام دوستان گرامی...
من برای ذخیره یه سری مقدار از نوع object هستن از serialization استفاده کردم exception دارم نمی دونم از کجاست ...
میشه راهنماییم کنید لطفا
کدم اینه

private void saveInXml()
{
Shape shapes = new Shape();
var pth = Path.GetFullPath(@"./") + "Save" + Properties.Settings.Default.Counter.ToString() + ".xml";
XmlSerializer writer = new XmlSerializer(typeof(Element));
FileStream file = File.Create(pth);
foreach (var sh in cmbShapes.Items)
{
writer.Serialize(file, shapes.Save());
}
file.Close();
}


اینم متدم در همه کلاسها
public override string Save()
{
return "Rectangle" + ":" + name + ":" + strockcolor + ":" + strockwidth + ":" + x + ":" + y;
}

139937

CodeforLife
جمعه 20 فروردین 1395, 09:20 صبح
وقتی متد base رو public میکنم این exception رو میده
139938

mostafashekariyan008
جمعه 20 فروردین 1395, 09:57 صبح
ذخیره کردنxml
139940

CodeforLife
جمعه 20 فروردین 1395, 10:19 صبح
سلام .
جسارتا شما منظور من رو متوجه نشدین من نمی خوام فایل xml رو ذخیره کنم ....
میخوام مقادیر رو در فایل xml ذخیره کنم ....

CodeforLife
جمعه 20 فروردین 1395, 13:21 عصر
دوباره سلام دوستان
من یه مثال کوچیک از کاری که کردم رو در برنا مه ای نوشتم .
براتون میگذارم ....میشه لطفا ببینید این exception برای چیه ؟؟
ممنون میشم کمکم کنید
http://s7.picofile.com/file/8246391742/WindowsFormsApplication3.zip.html

Mahmoud.Afrad
جمعه 20 فروردین 1395, 14:45 عصر
آرگومان دومی که به متد Serialize ارسال میکنید باید از همان نوعی باشد که به سازنده XmlSerializer ارسال کرده اید. یعنی در این نمونه شئ یا مجموعه ای از اشیاء از نوع notebook

notebook overview = new notebook();
XmlSerializer writer = new XmlSerializer(overview.GetType());
var path = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments) + "//SerializationOverview.xml";
System.IO.FileStream file = System.IO.File.Create(path);
writer.Serialize(file, overview);
file.Close();

CodeforLife
جمعه 20 فروردین 1395, 16:11 عصر
سلام وممنونم
من در برنامه اصلیم چند تا کلاس دارم که برای هر کدام باید متد save فراخوانی بشه foreach راه حل خوبیه ولی چون این کلاسها مشتق شده از کلاس base هستند نمیتونن public باشن ...
و چون public نمیشه exception دارم ...
خلاصه کلی کلافم کرده ...چه کار کنم؟؟؟