Мне нужно рекурсивно получить все свойства объекта DateTime
.Как рекурсивно получить свойства типа с использованием отражения?
В настоящее время я делаю:
public static void GetDates(this object value)
{
var properties = value.GetType().GetProperties();
foreach (var property in properties)
{
if (property.GetType().IsClass)
{
property.SetDatesToUtc();
}
else
{
if (property.GetType() == typeof(DateTime))
{
//Do something...
}
}
}
}
Однако использование property.GetType().IsClass
не достаточно, так как даже строки или даты свойства классов.
Есть ли способ получить свойства, являющиеся фактическими классами?
Было бы лучше, если бы я добавил интерфейс к классам, у которых есть свойства DateTime
, а затем проверить, реализует ли это свойство этот интерфейс?
Какова цель первого оператора if? –
@ MathiasR.Jessen Первый оператор 'if' проверяет, является ли свойство ссылочным типом. –