Привет,
У меня есть конкретный объект, который может быть создан из файла как таковой:
public class ConfigObj
{
public ConfigObj(string loadPath)
{
//load object using .Net's supplied Serialization library
//resulting in a ConfigObj object
ConfigObj deserializedObj = VoodooLoadFunction(loadpath);
//the line below won't compile
this = thisIsMyObj;
}
}
По сути, я хочу сказать: «Хорошо, а теперь этот объект, который мы только что десериализовали, это тот объект, которым мы на самом деле являемся». Есть несколько способов сделать это, и мне интересно, какой из них считается наилучшей практикой. Мои идеи:
- Создайте функцию копирования в меня, которая копирует поле объекта за полем. Это текущая реализация, и я почти уверен, что это ужасная идея, поскольку всякий раз, когда к объекту добавляется новый член, мне нужно также не забыть добавить его в функцию «копировать в меня», и это никак не поддерживается .
- Создайте статический метод для класса ConfigObj, который фактически действует как конструктор для загрузки объекта. Это звучит намного лучше, но не очень хорошо.
Однако я не совсем доволен ни тем, ни другим. Какова признанная лучшая практика здесь?