我有叫我的DbContext方法sqlquery的方法的方法是如下:如何從C#中的基類中的值,而無需使用屬性名
private IEnumerable<object> getRawDataDb(DependencySheet sheet, string name)
{
switch(name)
{
case "DefaultData":
return sqlQuery.Database.SqlQuery<DefaultData>(sheet.Query);
case "OpenInventory":
return sqlQuery.Database.SqlQuery<OpenInventory>(sheet.Query);
case "CompQuals":
return sqlQuery.Database.SqlQuery<CompQual>(sheet.Query);
}
return null;
}
從下面
調用上面的方法foreach(var raw in rawData)
{
var tw = raw.GetType().BaseType.GetFields(BindingFlags.NonPublic|BindingFlags.Instance);
}
現在在執行時,我想:
var rawData = getRawDataDb(dependentData, sheetName).ToList();
,然後用如下foreach循環迭代它得到如下圖所示成一個在原始對象獲取圖像的值:
,但我不能夠獲得價值,我已經使用的GetType。
感謝 達曼
爲什麼不只是有三種方法返回正確類型的值,並避免這種不必要的'name'參數和'switch'。這似乎是通過將這一切全部轉化爲單一的瑞士軍刀方法來製造問題。 –
其實我們試圖使它成爲一種通用的方法 –