pooya1072
دوشنبه 30 خرداد 1401, 00:54 صبح
سلام
فرض کنید کلاسی داریم به نام CourseList :
namespace Project
{
[Serializable]
public class CourseList
{
[XmlElement("Courses",IsNullable =true))]
public List<string> Courses { get; set; }
}
}
درون متد Main یک نمونه از این کلاس میسازیم و نمونه را درون یک فایل Xml سریال می کنیم . (خاصیت Courses را new نمیکنم) :
namespace Project
{
class Program
{
static void Main(string[] args)
{
CourseList SerializedCourses = new CourseList();
XmlSerializer serializer = new XmlSerializer(typeof(CourseList));
TextWriter writer = new StreamWriter("ex.xml");
serializer.Serialize(writer, SerializedCourses );
writer.Close();
Console.ReadKey();
}
}
}
فایل Xml خروجی به شکل زیر است :
<?xml version="1.0" encoding="utf-8"?>
<CourseList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
حالا همین فایل xml رو Deserialize می کنیم و در آبجکت DeserializedCourses قرار می دهیم :
CourseList DeserializedCourses;
FileStream fs = new FileStream("ex.xml", FileMode.Open);
DeserializedCourses = (CourseList)serializer.Deserialize(fs);
در شی SerializedCourses , فیلد Courses به درستی null است .چون اصلا مقدار دهی و نمونه سازی نشده
ولی مشکل اینجاست که در شی DeserializedCourses , فیلد Courses مقدارش null نیست و یرای خاصیت Courses نمونه ساخته شده و من متوجه نمیشم که چطور.
این هم عکس از پنجره Watch محیط Debugging :
153849
ممنون میشم نظرتون رو بگید.
فرض کنید کلاسی داریم به نام CourseList :
namespace Project
{
[Serializable]
public class CourseList
{
[XmlElement("Courses",IsNullable =true))]
public List<string> Courses { get; set; }
}
}
درون متد Main یک نمونه از این کلاس میسازیم و نمونه را درون یک فایل Xml سریال می کنیم . (خاصیت Courses را new نمیکنم) :
namespace Project
{
class Program
{
static void Main(string[] args)
{
CourseList SerializedCourses = new CourseList();
XmlSerializer serializer = new XmlSerializer(typeof(CourseList));
TextWriter writer = new StreamWriter("ex.xml");
serializer.Serialize(writer, SerializedCourses );
writer.Close();
Console.ReadKey();
}
}
}
فایل Xml خروجی به شکل زیر است :
<?xml version="1.0" encoding="utf-8"?>
<CourseList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
حالا همین فایل xml رو Deserialize می کنیم و در آبجکت DeserializedCourses قرار می دهیم :
CourseList DeserializedCourses;
FileStream fs = new FileStream("ex.xml", FileMode.Open);
DeserializedCourses = (CourseList)serializer.Deserialize(fs);
در شی SerializedCourses , فیلد Courses به درستی null است .چون اصلا مقدار دهی و نمونه سازی نشده
ولی مشکل اینجاست که در شی DeserializedCourses , فیلد Courses مقدارش null نیست و یرای خاصیت Courses نمونه ساخته شده و من متوجه نمیشم که چطور.
این هم عکس از پنجره Watch محیط Debugging :
153849
ممنون میشم نظرتون رو بگید.