• 0

كيف أخزّن متغير من نوع Object في ملف XML باستخدام #C؟

أعمل على برنامج لإدارة قسم في مؤسسة وأحتاج لتخزين بيانات على ملف XML في #C علمًا أن البيانات عبارة عن Objects قمت بإنشائها كيف يمكن تخزينها؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يتم تخزين الكائنات Objects في ملفات XML باستخدام XmlWriter. مثلًا ليكن لدينا الصف Employee يحوي على مجموعة من الـ Attributes (المعرفID، الاسم الأول، الاسم الأخير، الراتب):

class Employee
    {
	int _id;
	string _firstName;
	string _lastName;
	int _salary;

إنشاء الـ constructor:

public Employee(int id, string firstName, string lastName, int salary)
	{
	    this._id = id;
	    this._firstName = firstName;
	    this._lastName = lastName;
	    this._salary = salary;
	}

إنشاء get Methods كما في المثال التالي:

public int Id { get { return _id; } }
	public string FirstName { get { return _firstName; } }
	public string LastName { get { return _lastName; } }
	public int Salary { get { return _salary; } }

الآن في الدالة main سيتم إنشاء كائنات Objects من الصف Employee:

static void Main()
    {
	Employee[] employees = new Employee[4];
	employees[0] = new Employee(1, "David", "Smith", 10000);
	employees[1] = new Employee(3, "Mark", "Drinkwater", 30000);
	employees[2] = new Employee(4, "Norah", "Miller", 20000);
	employees[3] = new Employee(12, "Cecil", "Walker", 120000);

تم تخزين الكائنات في مصفوفة من نوع Employee وذلك ليتم كتابة وتخزين عناصرها على ملف XML.

الآن إنشاء كائن من الصف XMLWriter وتمرير اسم الملف المراد إنشاءه لتخزين الكائنات Objects:

using (XmlWriter writer = XmlWriter.Create("employees.xml"))
	{....

استدعي الدالة WriterStartDocument  لتحديد بداية الملف:

writer.WriteStartDocument();

باستخدام الدالة WriteStartElement يتم تحديد وسم البداية الذي سيكتب على الملف وفي المثال أعلاه سيكون "Employees":

 writer.WriteStartElement("Employees");

إنشاء حلقة تكرار foreach وكتابة عناصر المصفوفة Employee ضمن الوسم "Employee" المتضمن في الوسم "Employees"

foreach (Employee employee in employees)
	    {
		writer.WriteStartElement("Employee");

		writer.WriteElementString("ID", employee.Id.ToString());
		writer.WriteElementString("FirstName", employee.FirstName);
		writer.WriteElementString("LastName", employee.LastName);
		writer.WriteElementString("Salary", employee.Salary.ToString());

		writer.WriteEndElement();
	    }

 في النهاية استدعاء الدالة WriteEndElemnt ثم WriteEndDocument:

writer.WriteEndElement();
writer.WriteEndDocument();

 

يوجد أيضًا طرق أخرى لتخزين الـ Objects في XML يمكنك الاطلاع عليها من هنا

 

تمّ تعديل بواسطة Lujain

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن