Я бы предпочел пойти по маршруту Automapper - создать параллельный класс со строковыми свойствами только для сериализации, сопоставить его где-нибудь с
Mapper.CreateMap<DateTime, string>().ConvertUsing<DateTimeStringTypeConverter>();
и сделать конвертер
public class DateTimeStringTypeConverter : ITypeConverter<DateTime, string>
{
public string Convert(ResolutionContext context)
{
if (context.IsSourceValueNull)
return null;
else
{
var source = (DateTime)context.SourceValue;
return source.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
}
}
}
, а затем выполнитькарта -
Mapper.Map<DateStringClass>(DateClass);
Это больше работы, но держит домен в чистоте ...