我目前正在使用動態上載模塊。這個想法是隻爲每個新文件定義文件和數據合同。目前我使用反射2 foreach,這是一些重碼來做到這一點。正如你可以在代碼中看到的,我的對象包含csv文件和2個其他列表。這兩個列表包含我想要進行數據驗證的對象的所有屬性。使用屬性列表(反射)檢查對象值
var myCustomObjects = CsvSettings(new CsvReader(readFile, config)).GetRecords<MyCustomObject>();
var decimalProprties = GetPropertyNames<MyCustomObject>(typeof(decimal)).ToList();
var dateProprties = GetPropertyNames<MyCustomObject>(typeof(DateTime)).ToList();
foreach (var myCustomObject in myCustomObjects)
{
foreach (var dateProperty in dateProprties)
{
var value = myCustomObject.GetType().GetProperty(dateProperty).GetValue(myCustomObject, null);
Console.WriteLine(value); //code to check and report the value
}
Console.WriteLine(myCustomObject.Een + "|" + myCustomObject.Twee + "|" + myCustomObject.Drie);
}
我該如何用表達式或甚至另一種方式來實現這麼簡單的代碼呢?
「重」代碼是什麼意思?這畢竟是反思...... – RePierre
您最關心的是什麼?性能?可讀性?簡單? ...? –
性能,如果我的csv有9k行,我檢查10個屬性,它會運行90k次的反射。我寧願看到加載了10次的反射並將其加載到內存中... – Freddy