Nesnemin tüm DateTime özelliklerini varsayılan bir tarihe ayarlamak istiyorum. Ancak, değerleri yansıtma yoluyla ayarlamaya çalışırsam istisnayı alırım: "Nesne hedef türüyle eşleşmiyor."C# Nesne ayarlama DateTime özellik değerleri yansıma yoluyla
private void SetDefaultValues()
{
DateTime dt = DateTime.Parse("1/1/2000", new CultureInfo("en-US", true));
foreach (PropertyInfo p in this.GetType().GetProperties())
{
if (p.PropertyType.FullName == "System.DateTime")
{
p.SetValue(dt, typeof(DateTime), null);
}
}
}
Temel olarak yanlış bir şey mi/düşünüyor muyum?
Bunları doğrudan yansıtma yoluyla ayarlama nedeniniz nedir? Ayarlanması gereken bir tonunuz varsa, bunları bir Liste'ye veya bir Sözlüğe eklemeyi düşünebilirsiniz. –
Standart özelliklerden kaçınmak için varsayılan tarihle birlikte bir sınıf varmı döndüren bir alıcı var mı? –
Yansıma temelinde özel bir serileştirme yöntemi uygulayan çok düzeyli bir devralma kabusunda benzer işlevleri yapmaya çalıştım. Performans korkunç! Kısmi sınıfları kullanıp kod üreteci yazmaktan daha iyidir. (0,02 dolar). –