PDA

View Full Version : Serializable attribute چیست؟



alireza1384
دوشنبه 07 مرداد 1387, 08:30 صبح
سلام. دربعضی نمونه کدها دربالای تعریف کلاس از عبارت [ Serializable ] استفاده می شود. مفهوم آن چیست ؟

alireza1384
دوشنبه 07 مرداد 1387, 08:42 صبح
ازدوستان کسی دراین مورد راهنمایی یا مقاله ای سراغ ندارد؟

alireza1384
دوشنبه 07 مرداد 1387, 11:48 صبح
ازدوستان کسی در مورد Serializable کلاس اطلاعاتی ندارد ؟

mehdi.mousavi
دوشنبه 07 مرداد 1387, 13:51 عصر
سلام. دربعضی نمونه کدها دربالای تعریف کلاس از عبارت [ Serializable ] استفاده می شود. مفهوم آن چیست ؟

سلام.
Serialization یعنی تبدیل یک Object به Stream ای از بایتها به منظور ذخیره اونها در حافظه، بانک، فایل و یا ارسال اونها روی خط. هدف اصلی Serialization ذخیره State های یک Object هستش تا بهنگام نیاز بشه اون Object رو دوباره ایجاد کرد. (به دوباره ایجاد کردن Object از روی Stream مربوطه Deserialization میگن).

در واقعیت ما انواع و اقسام Serialization ها رو داریم:

Xml Serialization
SOAP Serialization
Binary Serialization
Custom Serialization و هزار و یه چیز دیگه.

Attribute ای که شما گفتید، یعنی SerializableAttribute وقتی که بالای یک کلاس قرار میگیره، به CLR میفهمونه که Instance های اون کلاس میتونن Serialize بشن. شما میتونید فیلدهایی در کلاستون رو که تمایلی به Serialize شدنشون ندارید رو با NoSerializedAttribute، دکوریت کنید. به این ترتیب فیلدهایی که به این attribute مزین شدن، Serialize نخواهند شد.

در نهایت شما میتونید از کلاسهای SoapFormatter یا BinaryFormatter برای Serialize/Deserialize کردن کلاسهایی که با Attribute فوق الذکر decorate شدن، استفاده کنید.

yasercomeng
سه شنبه 08 مرداد 1387, 03:43 صبح
لينك زير رو يه نگاهي بنداز مقاله اي كه گذاشتم و تيكه كدي كه نوشتم همه صحبت هاي دوست عزيزمون mehdi6755 رو تكميل مي كنه:
http://www.barnamenevis.org/forum/showthread.php?t=113191