У меня есть xml, где TimeStamp не установлен. Я перепробовал все возможные комбинации здесь, но на десериализации всегда бросает исключение с: There was an error deserializing the object of type MyType. The value '' cannot be parsed as the type 'DateTime'.
Как сделать datamember необязательным при десериализации?
[DataMember(IsRequired = false, EmitDefaultValue = false)]
public DateTime TimeStamp = DateTime.Now;
Что именно мне нужно установить на этом элементе TIMESTAMP, так что это не является обязательным на десериализации (= не требуется, чтобы быть в XML-)
EDIT: То, что я пытался по предложению Xaruth в:
[DataMember]
[DefaultValue(typeof(DateTime), "2014-08-25T09:31:09.2477328+02:00")]
public DateTime TimeStamp { get; set; }
public bool ShouldSerializeTimeStamp()
{
return TimeStamp != null;
}
public void ResetTimeStamp()
{
TimeStamp = DateTime.Now;
}
Не включайте в процесс сериализации. Так как это необязательный член; не пропускайте его во время использования метода/операции обслуживания. – Rahul
Rahul Я сериализуюсь в/из xml. Проблема возникает при попытке десериализовать уже существующий xml, у которого нет Timestamp вообще, но я все же хочу, чтобы он deserialize без исключений. – Blub