تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
The Serialization
#1
كاتب الموضوع : !!! BoriS !!!

السلام عليكم ورحمة الله وبركاتة.

The Serialization : هى عملية حفظ بيانات Object Instance فى وحدة تخزين خاصة Stream

ال Stream هذا هو عبارة عن Class يمثل وحدة تخزين بغض النظر عن ال Storage Place الخاصة بها.

يستخدم ال Serialization فى حفظ بيانات الكائن ومن ثم ارجاعها وتضمينها مرة اخرى داخل مشروعك سواء بانشاء متغير يشير اليها على حسب نوع البيانات التى تم حفظها.

عملية ارجاع او استدعاء بيانات الكائن تسمى ال DiSerialization ...

ال Serialization تقنية قوية جدا مكنت المبرمجين فى ارجاء الارض من تبادل البيانات بل والكائنات مع بعضهم البعض باستخدام Web Service مثلا.

جعل فئاتك قابلة للتسلسل Serialization يوفر عليك الكثير والكثير حيث توفر عليك اعادة سطورك مرة اخرى ، كل ماعليك كتابة فئاتك ثم حفظها واسترجعها فى اى وقت والتعديل عليها وحفظها مرة اخرى.

الان لننطلق الى ارض الواقع ونبدأ بمعرفة كيف نستطيع تطبيق التسلسل فى عالم .Net

الموضوع موجه للمحترفين او من يعلم كيفية التعامل مع الملفات IO وطرق التعامل مع ال Streams



كود :
[color=#000000][COLOR=#0000bb]Dim String_Array [/color][color=#007700]as [/color][color=#0000bb]string[/color][color=#007700]()  = {[/color][color=#dd0000]"a"[/color][color=#007700],[/color][color=#dd0000]"b"[/color][color=#007700],[/color][color=#dd0000]"c"[/color][color=#007700],[/color][color=#dd0000]"d"[/color][COLOR=#007700]}

[/COLOR][color=#0000bb]Dim MyStream [/color][color=#007700]as [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]file[/color][color=#007700].[/color][color=#0000bb]open[/color][color=#007700]([/color][color=#dd0000]"D:\A.dat"[/color][color=#007700], [/color][color=#0000bb]FileMode[/color][color=#007700].[/color][color=#0000bb]OpenOrCreate[/color][COLOR=#007700])

[/COLOR][color=#0000bb]Dim SerialO [/color][color=#007700]as new [/color][COLOR=#0000bb]BinaryFormatter

SerialO[/COLOR][color=#007700].[/color][color=#0000bb]Serialize[/color][color=#007700]([/color][color=#0000bb]String_Array[/color][color=#007700], [/color][color=#0000bb]MyStream [/color][COLOR=#007700])

[/COLOR][color=#0000bb]MyStream [/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

تمت عملية التسلسل بنجاح وتم حفظ البيانات داخل الملف

لنشرح الكود


كود :
[color=#000000][COLOR=#0000bb]هنــا [/color][color=#007700]: [/color][color=#0000bb]Dim String_Array [/color][color=#007700]as [/color][color=#0000bb]string[/color][color=#007700]()  = {[/color][color=#dd0000]"a"[/color][color=#007700],[/color][color=#dd0000]"b"[/color][color=#007700],[/color][color=#dd0000]"c"[/color][color=#007700],[/color][color=#dd0000]"d"[/color][COLOR=#007700]}  
[/COLOR][color=#0000bb][/color][/COLOR]

مصفوفة تحمل البيانات السابقة.

هنتــا :
كود :
[color=#000000][COLOR=#0000bb]Dim MyStream [/color][color=#007700]as [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]file[/color][color=#007700].[/color][color=#0000bb]open[/color][color=#007700]([/color][color=#dd0000]"D:\A.dat"[/color][color=#007700], [/color][color=#0000bb]FileMode[/color][color=#007700].[/color][color=#0000bb]OpenOrCreate[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

هنا قمنا بتعريف متغير من النوع FileStream يمثل وحدة التخزين التى سوف يتم تخزين المصفوفة String_Array بهـــا.


هنـــا :
كود :
[color=#000000][COLOR=#0000bb]Dim SerialO [/color][color=#007700]as new [/color][COLOR=#0000bb]BinaryFormatter  
[/COLOR][/COLOR]

قمنا بتعريف متغير من النوع BinaryFormatter والذى يقوم بتطبيق التسلسل بالصيغة Binary




كود :
[color=#000000][COLOR=#0000bb]SerialO[/color][color=#007700].[/color][color=#0000bb]Serialize[/color][color=#007700]([/color][color=#0000bb]String_Array[/color][color=#007700], [/color][color=#0000bb]MyStream [/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

هنا قمنا بحفظة ال String_Array داخل وحدة التخزين MyStream عن طريق الطريقة Serialize والتى تقوم بتنفيذ عملية التسلسل .


كود :
[color=#000000][COLOR=#0000bb]MyStream [/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]

غلق وحدة التخزين فى النهاية .


لنقم بعمل استدعاء لبيانات المخزنة بكل سهولة وهو مايسمى بال Disserialization


كود :
[color=#000000][COLOR=#0000bb]Dim String_Array [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim MyStream [/color][color=#007700]As [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]Open[/color][color=#007700]([/color][color=#dd0000]"D:\A.dat"[/color][COLOR=#007700],
[/COLOR][color=#0000bb]Dim SerialO [/color][color=#007700]As New [/color][color=#0000bb]BinaryFormatter[/color][COLOR=#007700]()

[/COLOR][color=#0000bb]String_Array [/color][color=#007700]= [/color][color=#0000bb]CType[/color][color=#007700]([/color][color=#0000bb]SerialO[/color][color=#007700].[/color][color=#0000bb]Deserialize[/color][color=#007700]([/color][color=#0000bb]MyStream [/color][color=#007700]), [/color][color=#0000bb]String[/color][COLOR=#007700]())

[/COLOR][color=#0000bb]MESSAGEBOX [/color][color=#007700]([/color][color=#0000bb]sTRING_aRRAY[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700]))       [/color][COLOR=#0000bb]A  
[/COLOR][/COLOR]

وهكذا الكود لايحتاج الى شرح ...

هذا مقال سريع يعتبر مدخل لك للتعامل مع الكائنات وحفظها من خلال Serialization.

واعذرونى على التقصير ...

والسلام عليكم ورحمة الله وبركاتة
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مثال على Custom Serialization من خلال فئة اسم مستخدم وكلمة مرور RaggiTech 0 2,420 05-10-12, 01:42 AM
آخر رد: RaggiTech
  مقال تقني - سلسلة الكائنات Object Serialization بشكل مجمل RaggiTech 0 2,383 04-10-12, 11:38 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم