Использование 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, вы можете создать оболочку класса Font, которая будет хранить некоторое подмножество свойств Font.
Примечание (Гишу) - Никогда не обращайтесь к преобразователю типов напрямую. Вместо этого получите доступ к соответствующему конвертеру с помощью TypeDescriptor. Очень важно:)