Используя XmlIgnore на сгенерированных частичных классах

Они должны начать с исправления классов, относящихся к календарю / дате, даже если кажется, что это слишком много.

9
задан Community 23 May 2017 в 12:26
поделиться

2 ответа

AFAIK, MetadataTypeAttribute не поддерживается XmlSerializer (хотя было бы неплохо - я просто никогда не проверял). И, как вы говорите, вы не можете добавлять атрибуты членов в частичный класс.

Один из вариантов может заключаться в том, чтобы сделать сгенерированные свойства закрытыми ( частными , защищенными или internal ) - и назовите его примерно так TimestampStorage (и т. Д.) - затем повторно откройте их (в частичном классе) в общедоступном API:

 [XmlIgnore]
 public object Timestamp {
     get {return TimestampStorage; }
     set {TimestampStorage = value; }
 }
 // and other properties

(начиная с XmlSerializer смотрит только на общедоступный API). Самая большая проблема здесь в том, что запросы LINQ-to-SQL (, где и т.д.) будут работать только с сгенерированными столбцами ( TimestampStorage и т.д.). Я использовал этот подход раньше с элементом как internal , что позволило моему классу DAL использовать свойство internal ... но это немного не так.

3
ответ дан 4 December 2019 в 13:49
поделиться

Я согласен с Марком. Проще всего пометить их внутренние. При желании вы можете повторно выставить их в частичном классе с помощью [XmlIgnore]. Кстати, вы можете контролировать доступность свойств в конструкторе linq2sql. Откройте диалоговое окно свойств, и вы увидите место для их установки

1
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: