التسلسل وإلغاء التسلسل في C# مع مثال

التسلسل وإلغاء التسلسل في C#

يتم استخدام مفهوم التسلسل وإلغاء التسلسل عندما يتعين إرسال البيانات المتعلقة بالكائنات من تطبيق إلى آخر. يتم استخدام التسلسل لتصدير بيانات التطبيق إلى ملف. يستخدم التطبيق الوجهة بعد ذلك إلغاء التسلسل لاستخراج البيانات من التطبيق لاستخدامها مرة أخرى.

التسلسل هو مفهوم تتم فيه كتابة كائنات فئة C# أو تسلسلها إلى ملفات. لنفترض أن لديك فصل C# يسمى البرنامج التعليمي. ويحتوي الفصل على خاصيتين للمعرف واسم البرامج التعليمية.

يمكن استخدام التسلسل لكتابة خصائص بيانات فئة البرنامج التعليمي مباشرة إلى ملف. يتم استخدام إلغاء التسلسل لقراءة البيانات من الملف وإنشاء كائن البرنامج التعليمي مرة أخرى.

كيفية إجراء تسلسل لكائن في C#

دعونا نلقي نظرة على مثال لكيفية تحقيق ذلك.

في مثالنا، سنقوم بتنفيذ الخطوات عالية المستوى أدناه في التعليمات البرمجية

  1. قم بإنشاء فئة تسمى البرنامج التعليمي والتي تحتوي على خاصيتين، وهما المعرف والاسم
  2. سنقوم بعد ذلك بإنشاء كائن من الفصل وتعيين قيمة "1" لخاصية المعرف وقيمة ".Net" لخاصية الاسم.
  3. سنستخدم بعد ذلك التسلسل لإجراء تسلسل للكائن أعلاه إلى ملف يسمى example.txt
  4. وأخيرًا، سوف نستخدم إلغاء التسلسل لإلغاء تسلسل الكائن من الملف وعرض القيم في وحدة التحكم.


أدخل الكود أدناه في ملف Program.cs الخاص بتطبيق وحدة التحكم.

الخطوة 1) أضف الفصل.

الخطوة الأولى هي إضافة الفئة التي سيتم استخدامها للتسلسل

تسلسل كائن في C#

شرح الكود :-

  1. يجب أن تحتوي الفئة التي تحتاج إلى إجراء تسلسل على السمة [Serializable]. هذه هي الكلمة الأساسية في C#. يتم بعد ذلك إرفاق هذه الكلمة الأساسية بفصل البرنامج التعليمي. إذا لم تذكر هذه السمة، فسوف تحصل على خطأ عند محاولة إجراء تسلسل للفئة.
  2. التالي هو تعريف الفئة التي سيتم تسلسلها. نحن هنا نحدد فئة تسمى "البرنامج التعليمي" ونوفر خاصيتين، إحداهما "المعرف" والأخرى "الاسم".

الخطوة 2) قم بإنشاء الكائن.

في هذه الخطوة، سنقوم أولاً بإنشاء كائن فئة البرنامج التعليمي وإجراء تسلسل له في الملف المسمى example.txt

تسلسل كائن في C#

شرح الكود :-

  1. أولاً، نقوم بإنشاء كائن من فئة البرنامج التعليمي. نقوم بعد ذلك بتعيين قيمة "1" للمعرف و".net" لخاصية الاسم.
  2. نستخدم بعد ذلك فئة المنسق المستخدمة لإجراء تسلسل للكائن أو تحويله إلى تنسيق ثنائي. تتم البيانات الموجودة في الملف في التسلسل بتنسيق ثنائي. بعد ذلك، نقوم بإنشاء كائن دفق الملف. يتم استخدام كائن دفق الملف لفتح الملف example.txt لأغراض الكتابة. يتم استخدام الكلمات الأساسية FileMode.Create وFileMode.Write للإشارة على وجه التحديد إلى ضرورة فتح الملف لأغراض الكتابة.
  3. وأخيرًا، نستخدم طريقة التسلسل لنقل البيانات الثنائية إلى الملف. ثم نقوم بإغلاق الدفق، منذ الكتابة عملية اكتمال.

الخطوة 3) استخدم إلغاء التسلسل.

وأخيرًا للتأكد من وجود البيانات في الملف، نستخدم إلغاء التسلسل لإلغاء تسلسل الكائن من الملف.

تسلسل كائن في C#

using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  [Serializable]
  class Tutorial
  {
  public int ID;
  public String Name;
   static void Main(string[] args)
   {
    Tutorial obj = new Tutorial();
    obj.ID = 1;
    obj.Name = ".Net";

    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Create,FileAccess.Write);

    formatter.Serialize(stream, obj);
    stream.Close();

    stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Open,FileAccess.Read);
    Tutorial objnew = (Tutorial)formatter.Deserialize(stream);

    Console.WriteLine(objnew.ID);
    Console.WriteLine(objnew.Name);

    Console.ReadKey();
  }
 }
}

شرح الكود :-

  1. نقوم بإنشاء الكائن "مجرى" لفتح الملف example.txt في وضع القراءة فقط.
  2. نستخدم بعد ذلك فئة المنسق المستخدمة لإلغاء تسلسل الكائن، والذي تم تخزينه في ملف example.txt. يتم تعيين الكائن الذي تم إرجاعه إلى الكائن objnew.
  3. أخيرًا، نقوم بعرض خصائص الكائن "objnew" على وحدة التحكم باستخدام خاصيتي "المعرف" و"الاسم".

عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام البصرية ستوديو، سوف تحصل على الناتج أدناه.

انتاج:-

تسلسل كائن في C#

يمكنك أن ترى من الإخراج أعلاه أنه تم إلغاء تسلسل القيم من الملف بشكل صحيح وعرضها في وحدة التحكم.

نبذة عامة

يتم استخدام التسلسل لكتابة كائنات الفئة إلى الملفات.

يتم استخدام إلغاء التسلسل لاستعادة الكائنات من الملف.