Переопределение имен базового класса XMLElement - PullRequest
1 голос
/ 28 марта 2012

У меня есть несколько классов, которые будут хранить одинаковые данные для разных целей, и я просто хотел бы, чтобы они основывались на одном и том же базовом классе и сериализовали все данные в XML, однако я хочу изменить Имена элементов при сериализации. Это в C #.

Я хочу использовать имена классов, чтобы было проще читать мой код и проще в реализации.

public BaseMenuItem
{
   public string ItemName;
   public string ItemDescription
   public string ItemAssetName; 
   public List<BaseMenuItem> SubMenuItems;
}

тогда другие элементы наследуют это и сериализуют его с другими именами элементов. В настоящее время у меня есть разные классы без базового класса, однако использование одного и того же базового класса упростит его реализацию и сделает его более расширяемым, поэтому я немного теряюсь в том, как добиться переопределения имен элементов переменных, которые я определил для базовый класс.

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

В этом случае я бы сказал, что «требование к базовому классу» причиняет вам больше боли, чем значение, которое оно доставляет.

Если вы используете только базовый класс для сохранения некоторого кода, т.е.хотите иметь дополнительные свойства в подклассах?Если это так, просто сдаться и удалить базовый класс.За счет наличия нескольких дополнительных строк в каждом подклассе у вас будет меньше боли двигаться вперед.

Если вам нужен базовый класс по программным причинам?Например, операции выполняются специально для базового класса (полиморфизм).Используйте интерфейс вместо базового класса.

В любом случае удалите базовый класс.

0 голосов
/ 27 июня 2012

К сожалению, вы не можете сделать это с сериализаторами, которые вы используете. Эти сериализаторы .NET по умолчанию негибкие, медленные и обычно полезны только в тривиальных ситуациях.

Вы можете попробовать другой сериализатор или использовать наследование класса, но не свойства этого класса. Что вряд ли будет очень полезно, если у вас есть много элементов, на которые вы хотите изменить имя.

На самом деле, я не уверен в этом сейчас. Я обновлюсь, когда буду более уверен в этом, у меня та же проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...