هل هناك اختصار لتخصيص كل خاصية في كائن ما؟
-
26-09-2019 - |
سؤال
إذا كان هناك كائن فيه يجب تسلسل كل ممتلكات عامة والخصائص بسيطة (مجرد أرقام أو سلاسل أو كائنات تنفذ بالفعل ISerializable
) ، هل هناك طريقة سهلة للقيام بذلك دون الحاجة إلى إنشاء GetObjectData(SerializationInfo info, StreamingContext context)
ومركب يأخذ SerializationInfo
كحجة في كل مرة؟
أعلم أنه يمكن القيام به يدويًا مع التفكير ، ولكن هل هناك طريقة سحرية داخل إطار .NET للقيام بذلك؟
لذا فإن الإجابة الصحيحة هي:
لا تحاول تطبيق iserializable - إنه للتسلسل المخصص. بدلاً من ذلك ، أضف السمة [Serializable] قبل إعلان الفصل.
المحلول
جرب الطبقة الثنائية - يجب أن تفعل ما تحتاجه
تحرير: أنت لا تستمد من BinaryFormatter - إنها فئة فائدة تستخدمها للقيام بالتسلسل الخاص بك. هنا مثال تم نسخه من المستندات
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
لا تنتمي إلى StackOverflow