01-10-12, 06:55 PM
كاتب الموضوع : !!! 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.
واعذرونى على التقصير ...
والسلام عليكم ورحمة الله وبركاتة