В настоящее время я работаю над приложением, в котором мне нужно загрузить данные из базы данных SQL, а затем назначить полученные значения в свойствах объекта. Я делаю это с помощью отражения, так как имена свойств и имена столбцов совпадают. Однако во многих свойствах используется пользовательский тип структуры, который в основном является оберткой для десятичного типа. Я определил неявное преобразование в моей структуре:
public static implicit operator Currency(decimal d)
{
return new Currency(d);
}
Это прекрасно работает, когда я использую его в коде. Тем не менее, когда у меня есть это:
foreach (PropertyInfo p in props)
{
p.SetValue(this, table.Rows[0][p.Name], null);
}
Выдает исключение ArgumentException, заявляющее, что не может преобразовать из System.Decimal в Currency. Я в замешательстве, так как он отлично работает при любых других обстоятельствах.