هل من الممكن حفظ التعسفي البيانات إلى ملف في C# ؟
-
06-07-2019 - |
سؤال
لدي الدرجة مع العديد من المجموعات التي تم تحميلها في الذاكرة.هل من الممكن أن بعض كيف حفظ هذه الفئة مع جميع البيانات إلى ملف أن تكون قادرة على مجرد تحميله إلى الذاكرة في وقت لاحق ؟ هل هناك واجهة من شأنها أن التعامل مع كل هذا ؟
المحلول
ما كنت تصف يسمى التسلسل.كنت searialize كائن في تنسيق البيانات التي يمكن تخزينها على القرص ثم يمكنك بعد ذلك تسلسل البيانات في كائن.هناك العديد من الطرق للقيام بذلك ، ولكن أن تكون الخطوة الأولى لجعل الطبقة للتسلسل بإضافة تسلسل السمة:
[Serializable]
public class YourClass
{
// the class goes here
}
ثم يمكنك استخدام على سبيل المثال XmlSerializer
فئة للتعامل مع التسلسل/إلغاء التسلسل.
التحديث
أود أن أذكر أنه يمكنك استخدام XmlSerializer
حتى إذا كان لديك فئة ليست مزينة Serializable
السمة.إلا ان بعض التسلسل تتطلب آليات السمة.
نصائح أخرى
BinaryFormatter أ > لتسلسل المثال
وإضافة [تسلسل] سمة أمام تعريف الفئة
ويمكنك استخدام منشأة صافي التسلسل، فقط لديك للاحتفال صفك مع السمة [تسلسل] وينبغي لجميع أعضاء يكون أيضا للتسلسل
ونموذج التعليمات البرمجية:
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class A
{
public static void Serialize(object obj,string filepath)
{
Formatter f = new BinaryFormatter();
f.Serialize(new FileStream(filepath,FileMode.Create),obj);
}
public static A Deserialize(string filepath)
{
Formatter f = new BinaryFormatter();
return f.Deserialize(new FileStream(filepath, FileMode.Open)) as A;
}
}