XML serialization

quawax

New member
XML serialization

שלום לכולם יש לי אובייקט שהוספתי לו את ה-Attributes על מנת למפות את ה-PROPERTIES של האובייקט לשם ה-XML ELEMENT לדוגמא יש לי את האובייקט הבא: [Serializable] [XmlRoot("TreeEntity")] public class TreeEntity { [XmlIgnore] public int? TreeID { get; set; } [XmlElement("TreeID")] public string Tid { get; set; } [XmlElement("TreePointX")] public double? TreeX { get; set; } [XmlElement("TreePointY")] public double? TreeY { get; set; } [XmlElement("IsAuto")] public bool? isAuto { get; set; } } יש לי אפשרות לקבוע את הXML ROOT לאובייקט יחיד בעזרת XML ROOT ATTRIBUTE אך בפועל אני עובד עם IEnumerable או עם LIST של האובייקט הנ"ל וכשאני שולח לסריאליזציה כמובן שהXML ROOT ATTRIBUTE שהגדרתי לא תופס בגלל שזה כבר לא אותו TYPE. איך ניתן להגדיר את הROOT ל- LIST<T> ?? תודה רבה
 
לא לגמרי הבנתי את הבעיה

list<T> בעקרון תומך בserialize ואכן ייצור רשימה כזו, אתה רוצה לשנות את הצורה שList<T> יוצר את הרשימה?
 

quawax

New member
הבעיה היא

ברמת האובייקט אין לי בעיה להגדיר מה יהיה ה-RootNode של ה-XML בזמן סריאליזציה בעזרת הAttribute המתאים. מה שאני שואל זה איך אני מגדיר אתהRoot node של ה-XML עבור LIST של אותו אובייקט שהגדרתי, כי כרגע בזמן סריאליזציה אני מקבל בתור ה-Root את הערך "TreeEntityCollection" מקווה שאני יותר ברור
 
אם הבנתי נכון

אתה רוצה לשנות את השם של ה-root של הקובץ xml שלך. אם זה המקרה, ביצירה של הserializer אתה יכול להעביר לו XmlRootAttribute ובו אתה מעביר את השם שאתה רוצה לאובייקט. אם לא... תמיד אתה יכול לרשת את List<TreeEntity> ועליו לזרוק את הAttribute. מקווה שעזרתי.
 

Miki Watts

New member
אתה צריך ליצור מחלקה שיורשת

מ List של אותו אובייקט, ועליה להגדיר XmlRoot, ולהשתמש בה כאשר אתה רוצה לעבוד עם אוסף של המחלקות
 
למעלה