Ну, вы можете использовать метод "bool ShouldSerializeSomeDateTime ()", чтобы включить / отключить сериализацию отдельных членов, но я не думаю, что это именно то, что вам нужно. Другим распространенным вариантом является добавление члена, который выполняет сам формат:
публичная строка SomeDateTimeFormatted {
получить {вернуть theField == DateTime.MinValue? "": theField.ToString ("R");} // или любой другой формат
установить {... противоположный ...}
}
Тем не менее, лучше придерживаться встроенной сериализации, если вы можете - частично, чтобы уменьшить объем кода, который вам нужно написать. Предложение Джоша для обнуляемого DateTime (DateTime?) Является хорошим, хотя оно может все еще не быть полностью пустой строкой по сравнению с форматированной строкой - я ожидаю, что будет использоваться разметка xsi: nil.