Элементы управления Winforms не сериализуются особенно хорошо, и вам может быть очень трудно заставить базовые классы (т.е. не ваш код) играть в мяч. Такие вещи, как Color
, например, регулярно доставляют удивительно хлопотные для сериализации.
XML будет очевидным (хотя и несколько предсказуемым) выбором, но обычно вам нужно заранее назначать подклассы. И, конечно, базовые классы не будут помечены как сериализуемые. BinaryFormatter
позволит избежать этого, но как сериализатор на основе полей, у вас будут проблемы с «дескрипторами» и т. Д. В базовых классах, которые бессмысленно сериализуются.
Я не говорю, что это невозможно, но это тоже не будет тривиально. Для начала вам нужно посмотреть на TypeConverter.GetProperties
и использовать Converter
каждого, чтобы получить значение в виде инвариантной строки.