PDA

View Full Version : serialize کردن System.Collection



Sajjad.Aghapour
جمعه 09 مرداد 1388, 20:05 عصر
سلام دوستان.کسی در این مورد می تونه کمک کنه:


Queue<Device> qList = new Queue<Device>();
Device dName = new Device();
dName.Name = "Mobile";

qList.Enqueue(dName);

XmlSerializer serialize = new XmlSerializer(typeof(Queue<Device>));

using (FileStream stream = new FileStream("lfc.xml", FileMode.Create, FileAccess.Write, FileShare.None))
{
serialize.Serialize(stream, qList);
}

یا


QueueqList = new Queue();
Device dName = new Device();
dName.Name = "Mobile";

qList.Enqueue(dName);

XmlSerializer serialize = new XmlSerializer(typeof(Queue));

using (FileStream stream = new FileStream("lfc.xml", FileMode.Create, FileAccess.Write, FileShare.None))
{
serialize.Serialize(stream, qList);
}

mehdi.mousavi
جمعه 09 مرداد 1388, 20:50 عصر
سلام دوستان.کسی در این مورد می تونه کمک کنه:

سلام.
Queue، Stack و کلیه کلاسهایی که Default Accessor براشون تعریف نشده رو نمیشه به XML،
Serialize کرد. جای Queue می تونید از Array، List و ... استفاده کنید.

Sajjad.Aghapour
شنبه 10 مرداد 1388, 14:48 عصر
بله .بنده هم این رو میدونم.می خواستم ببینم که راهی برای حل این مشکل وجود نداره؟...

mehdi.mousavi
شنبه 10 مرداد 1388, 15:29 عصر
بله .بنده هم این رو میدونم.می خواستم ببینم که راهی برای حل این مشکل وجود نداره؟...



Queue<Device> devices = new Queue<Device>();
devices.ToArray<Device>();


اینطوری میتونید مقدار بازگشتی ToArray رو Serialize کنید.

Sajjad.Aghapour
یک شنبه 11 مرداد 1388, 18:54 عصر
کلا دنبال راهی میگشتم که همون نوع Queue رو serialize کنم که نشد.مجبور شدم با BinaryFormatter اون رو Serialize کنم.....
به هر حال ممنون..