リフレクションを使用してデータベースストアドプロシージャからクラスを作成しました。エンティティを使用したり、クラスの厳密に型指定されたモデルを作成したりせずに、データテーブルの内容をかみそりのビューに表示できるようにしたいと考えています。現在、私は次のことを行っています。
public static List<object> GetPeople()
{
DataTable dt = DataAccess.GetPersons();
List<object> obj = MapDataTableToPerson(DataAccess.GetPersons());
return obj;
}
private static List<object> MapDataTableToPerson(DataTable dt)
{
List<object> returnClassObject = new List<object>();
Type typeClass = CreateClassFromDT(dt);
foreach (DataRow dr in dt.Rows)
{
object obj = Activator.CreateInstance(typeClass);
foreach(string columnName in ColumnNames)
{
PropertyInfo property = typeClass.GetProperty(columnName);
property.SetValue(obj, dr[columnName], null);
}
returnClassObject.Add(obj);
}
return returnClassObject;
}
コントローラからGetPeopleを呼び出してビューに渡しますが、Razorで作成されたクラスから値を取得する方法がわかりません。誰かが助けてくれれば、大いに感謝します。