Всем привет,
Есть код, который с помощью IlGenerator'a устанавливает значение свойства. Проблема в том, что при установке значения типа int свойству типа double выскакиевает иксепшн — InvalidCastException.
Вот код:
ilGenerator.Emit(OpCodes.Ldarg_0);
ilGenerator.Emit(OpCodes.Ldarg_1);
ilGenerator.Emit(OpCodes.Unbox_any, propertyToSetPropInfo.PropertyType);
ilGenerator.Emit(OpCodes.Callvirt, propertyToSetPropInfo.GetSetMethod(), null);
ilGenerator.Emit(OpCodes.Ret);
Как можно кастить int to double и нужно ли это делать вообще?
спасибо!
Здравствуйте, vitaly.st, Вы писали:
VS>Как можно кастить int to double и нужно ли это делать вообще?
Нужно. Можно воспользоваться
Convert.ChangeType или
BLToolkit.Common.Convert<T,P>.
Думаю тебе нужен
OpCodes..::.Conv_R8 Field
Converts the value on top of the evaluation stack to float64.
Или _R4 если нужен float dvtcnj double