Они говорят, чтобы не изобретать колесо, но вы могли бы сделать это бесчисленное количество способов. Это действительно зависит от стиля, формата и аудитории пользователя. Иногда мне нравится делать все в простом файле стиля txt, поэтому каждый может легко редактировать информацию. XML предложит вам возможность более легко организовать вашу информацию, которая, вероятно, будет лучше. Это действительно зависит от вас, я бы сказал, с чем вам удобнее. Я лично сделал бы свой собственный маленький алгоритм для поиска простого текстового файла, но это потому, что я не использую XML.
Вы должны создать класс только для обработки сохранения и загрузки файла.
Что-то вроде
public class CustomControls
{
//more code
public void AddCustomControl(Control x) { }
public void RemoveCustomControl(Control x) { }
public void UndoControl() { }
public void RedoControl() { }
public void SaveControls(string file){}
public void LoadControls(string file){}
//more code
}
Я думаю, что после того, как вы начнете работать на ваш классе, который обрабатывает сохранение и загрузку вы будете иметь гораздо более четкое представление о том, что будет делать это проще для вас и конечного пользователя.
* Вы также заметите, что вы можете отслеживать пользовательские элементы управления, добавленные через ваш теоретический класс CustomControls, иначе вам придется каким-то образом передать их. Я бы не рекомендовал прокручивать все элементы управления формы, а отслеживать то, что вы добавили динамически через класс CustomControls. Это также позволит вам реализовать такие функции, как отмена и повтор.