Попробуйте обновить определенное свойство моей модели с помощью Reflection. Это работает для всех других типов моей модели, кроме свойств типа DateTime?Задайте значение свойства nullable datetime
Код:
public void UpdateProperty(Guid topicGuid, string property, string value)
{
var topic = Read(topicGuid);
PropertyInfo propertyInfo = topic.GetType().GetProperty(property);
propertyInfo.SetValue(topic, Convert.ChangeType(value, propertyInfo.PropertyType), null);
topic.DateModified = DateTime.Now;
Save();
}
Следующая ошибка возникает на Convert.ChangeType части:
Invalid cast from 'System.String' to 'System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'
Как это можно решить?
Update
Понял работу с раствором Daniel A. White «s
код обновляется (вероятно, нуждается в точной настройке, но работает):
public void UpdateProperty(Guid topicGuid, string property, string value)
{
var topic = Read(topicGuid);
PropertyInfo propertyInfo = topic.GetType().GetProperty(property);
object changedType = propertyInfo.PropertyType == typeof(DateTime) || propertyInfo.PropertyType == typeof(DateTime?)
? DateTime.Parse(value)
: Convert.ChangeType(value, propertyInfo.PropertyType);
propertyInfo.SetValue(topic, changedType, null);
topic.DateModified = DateTime.Now;
Save();
}
Что такое фактическое сообщение об ошибке? –
Недопустимый литой из 'System.String' в 'System.Nullable'1 [[System.DateTime, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]]' – Dairo
вы должны использовать 'DateTime.Parse' или «TryParse» или связанные с ним. –