Они должны начать с исправления классов, относящихся к календарю / дате, даже если кажется, что это слишком много.
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
... но это немного не так.
Я согласен с Марком. Проще всего пометить их внутренние. При желании вы можете повторно выставить их в частичном классе с помощью [XmlIgnore]. Кстати, вы можете контролировать доступность свойств в конструкторе linq2sql. Откройте диалоговое окно свойств, и вы увидите место для их установки