В соответствии с вашим описанием, вспомогательный метод является методом расширения в DataTable, поэтому вы должны использовать следующую строку кода:
var data = dt.DataTableToList<MyModel>();
вы можете использовать тот же код для любого типа модели, так как это общий метод.Пример кода я выполнил в конце.Расширение класса помощника:
public static List<T> DataTableToList<T>(this DataTable table) where T : class, new()
{
try
{
List<T> list = new List<T>();
foreach (DataRow row in table.Rows)
{
T obj = new T();
//change made at this line
foreach (var prop in obj.GetType().GetProperties())
{
try
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(prop.Name);
propertyInfo.SetValue(obj, Convert.ChangeType(row[prop.Name], propertyInfo.PropertyType), null);
}
catch
{
continue;
}
}
list.Add(obj);
}
return list;
}
catch
{
return null;
}
}
Класс модели:
public class Data
{
public string Client_Description { get; set; }
public string Client_Code { get; set; }
public string Brand_Description { get; set; }
public string Brand_Code { get; set; }
}
Метод вызова:
DataTable inputData = null; // Get the DataTable
Метод расширения вызова:
var dataList = inputData.DataTableToList<Helper.Data>();
Или
var data = Helper.DataTableToList<Helper.Data>(inputData);
Пожалуйста, поделитесь со мной своим исходным кодом, если у вас все еще есть проблемы.
