كيف يمكنني فعالية تستمر a .صافي الخط الكائن ؟

StackOverflow https://stackoverflow.com/questions/118719

  •  02-07-2019
  •  | 
  •  

سؤال

Usecase:يجعل المستخدم الخط التخصيصات إلى كائن على سطح التصميم, أنني بحاجة إلى تحميل/حفظ إلى مخزن البيانات.أولا-هاء.الإعدادات مثل جريء, مائل, حجم, الخط اسم تحتاج إلى قائمة.

هناك بعض (موثوق) آلية لتحويل/قراءة من تمثيل سلسلة من الخط كائن (في هذه الحالة سوف تحتاج سمة واحدة فقط)?أو خصائص متعددة جنبا إلى جنب مع منطق مخصص حق الخيار ؟

هل كانت مفيدة؟

المحلول

استخدام TypeConverter:

Font font = new Font("Arial", 12, GraphicsUnit.Pixel);

TypeConverter converter = TypeDescriptor.GetConverter(typeof (Font));

string fontStr = converter.ConvertToInvariantString(font);

Font font2 = (Font) converter.ConvertFromString(fontStr);

Console.WriteLine(font.Name == font2.Name); // prints True

إذا كنت ترغب في استخدام XML التسلسل يمكنك إنشاء فئة الخط المجمع الذي سيتم تخزين بعض فرعية من خصائص الخط.

ملاحظة(Gishu) - أبدا الوصول إلى نوع محول مباشرة.بدلا من الوصول المناسبة converter باستخدام TypeDescriptor.مهم جدا :)

نصائح أخرى

في مشروع أعمل عليه ، ذهبت مع خصائص متعددة.

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

إعادة الخط على الطلب مرة واحدة هذه القيم هي retrived هو الخاطف.

ما هو نوع من مخزن البيانات هل تحتاج أن تستمر هذه ؟ إذا كان مجرد إعدادات المستخدم التي يمكن أن تكون موجودة في ملف يمكن أن serialise الخط كائن إلى إعدادات الملف إما ثنائي أو xml (إذا كنت تريد أن تكون قادرة على تحرير ملف التكوين مباشرة).فإن التسلسل مساحات (نظام.Xml.التسلسل النظام.وقت التشغيل.التسلسل) توفير جميع الأدوات للقيام بذلك دون كتابة التعليمات البرمجية المخصصة.

موقع MSDN على التسلسل XML: XML التسلسل في .Net Framework

[تحرير]حتى aparrently الخط كائن لا serialisable.عفوا :( آسف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top