2014-08-31 4 views
0

Я работаю над приложением Windows, реализованным на C#. Одно из требований заключается в том, чтобы пользователь мог выбирать набор шрифтов и сохранять их в базе данных. Среди информации, которую мне нужно хранить для шрифта являются:Как сохранить информацию о шрифте в базе данных

  • Имя шрифта
  • Размер
  • ли его полужирный, курсив, подчеркивание

До сих пор у меня есть эта информация хранятся как отдельные поля в базе данных. Последнее я строю объект Font из этой информации. Однако я не могу создать новый объект со всеми необходимыми настройками (например, шрифтом, выделенным полужирным шрифтом и курсивом).

Для иллюстрации я сделать что-то вроде этого (обратите внимание, что я работаю с EF, поэтому методы только для иллюстрации):

string font_name = GetFontNameFromDatabase(); 
string font_size = GetFontSizeFromDatabase(); 
... 

Font f = new Font(font_name, font_size); 

Мой вопрос заключается в том, есть ли удобный способ сохранить объект шрифта в База данных SLQ. Может быть, как двоичное поле?

ответ

5

Вы можете использовать FontConverter класс для сериализации и десериализации шрифты:

var fc = new FontConverter(); 
Font f1 = new Font("Times New Roman", 12); 
var fontAsString = fc.ConvertToInvariantString(f1); // "Times New Roman, 12pt" 
Font f2 = (Font)fc.ConvertFromInvariantString(fontAsString); 
Console.WriteLine(f2.ToString()); // [Font: Name=Times New Roman, Size=12, ...] 
Смежные вопросы