Следующий код дает красный волнистый знак под "emp. (Col.ColummnName)".Ошибка: « ожидаемый идентификатор »
foreach (DataColumn col in dt.Columns)
{
emp.(col.ColumnName) = row[(col.ColumnName)];
}
emp - пользовательский класс с именами свойств, которые соответствуют именам столбцов в dataTable dt .
Я подозреваю, что мне нужно создать выражение по-другому, чтобы я мог ссылаться на свойство класса emp с результатами вызова метода (col.ColumnName).
Будут оценены любые идеи.
=========================
Окончательный ответ с рабочим кодом функции;
public void rowToObject(ref DataRow dr, ref object myObj)
{
foreach (DataColumn dc in dr.Table.Columns)
{
string colName = dc.ColumnName;
object colValue = dr[colName];
if (object.ReferenceEquals(colValue, DBNull.Value))
{
colValue = null;
}
PropertyInfo pi = myObj.GetType().GetProperty(colName);
if (pi != null && colValue != null)
{
Type propType = null;
Type nullableType = Nullable.GetUnderlyingType(pi.PropertyType);
if (nullableType != null)
{
propType = nullableType;
}
else
{
propType = pi.PropertyType;
}
if (object.ReferenceEquals(propType, colValue.GetType()))
{
pi.SetValue(myObj, colValue, null);
}
}
}
}