نوشته شده توسط
bigknight
سلام
من میخوام هر چند تا تگ Lable که می خوام به فایل xml اضافه کنم
در انتها یک تگ هم با نام section اضافه کنم
فقط برای هر یک از این تگها ویژگی رنگ هم در زمان ایجاد بر عهده کاربر خواهد بود
کاربر خودش لیبل را ایجاد یک رنگ بهش اختصاص می دهد و سپس لیبل بعدی را ایجاد می کند.
سلام.
برای اینکار، می تونید از این کلاس، استفاده کنید:
/// <summary>
/// Provides a utility class to handle xml serialization.
/// </summary>
/// <typeparam name="T">The type to be serialized and/or deserialized.</typeparam>
public class XmlSerializer<T>
{
/// <summary>
/// Serializes the object to the given xml string.
/// </summary>
/// <param name="obj">The object to serialize.</param>
/// <returns>A serialized xml string that contains the entire object information.</returns>
public static string Serialize(T obj)
{
if (obj == null)
return null;
using (StringWriter writer = new StringWriter())
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(writer, obj);
return writer.ToString();
}
}
روش استفاده چیه؟ شما باید یک کلاس درست کنید، اسمش رو بذارید Label. سپس بالای کلاس Label، این خصیصه رو اضافه کنید:
[Serializable]
سپس، List ای از این Label ها بسازید و هر وقت خواستید اونها رو بصورت XML ذخیره کنید، کافیه بدین شکل عمل کنید:
string xml = XmlSerializer<List<Label>>.Serialize(myLabels);
بدین ترتیب، یه XML حاضر و آماده بصورت string دارید که هر کاری مایل باشید میتونید باهاش انجام بدید. جایی که گفتید Label ها رنگ داشته باشن، کافیه به کلاس Label خودتون، یه Property به اسم Color اضافه کنید و بالای این Property خصیصه XmlAttribute() رو اعمال کنید. بدین ترتیب، XML تولید شده، حاوی N تا Label خواهد بود (بصورت element) که هر Label به نوبه خودش، حاوی یک attribute رنگ هستش.
موفق باشید.