Код: Выделить всё
public static T Get(this DataRow row, string columnName)
{
if (row == null || string.IsNullOrWhiteSpace(columnName) || row.IsNull(columnName))
if (typeof(T) == typeof(string))
return (T)(object)string.Empty;
else
return default(T);
else
{
if (row[columnName].GetType() == typeof(T))
return row.Field(columnName);
else
{
return (T)Convert.ChangeType(row[columnName], typeof(T));
}
}
}
Код: Выделить всё
obj = new K();
var props = obj.GetType().GetProperties();
for (int i = 0; i < props.Length; i++)
{
if (row.Table.Columns.Contains(props[i].Name))
{
// props[i].SetValue(obj, row[prop]);
props[i].SetValue(obj, row.Get(props[i].Name));
}
}
Ошибка компилятора CS0019: оператор «оператор» нельзя применить к операндам типа «тип» ' и 'type'
Как я могу вызвать общее расширение, если тип известен во время выполнения?
Я пробовал это решение:
Обобщенные методы в C#, используя тип переменной в качестве параметра
но безуспешно - возможно, потому, что я использую расширение ?
Подробнее здесь: https://stackoverflow.com/questions/784 ... s-argument
Мобильная версия