Преобразование простых типов. IlGenerator
От: vitaly.st  
Дата: 22.04.09 06:10
Оценка:
Всем привет,

Есть код, который с помощью 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 и нужно ли это делать вообще?

спасибо!
Re: Преобразование простых типов. IlGenerator
От: _FRED_ Черногория
Дата: 22.04.09 06:23
Оценка: 5 (1)
Здравствуйте, vitaly.st, Вы писали:

VS>Как можно кастить int to double и нужно ли это делать вообще?


Нужно. Можно воспользоваться Convert.ChangeType или BLToolkit.Common.Convert<T,P>.
Help will always be given at Hogwarts to those who ask for it.
Re: Преобразование простых типов. IlGenerator
От: Sergey J. A. Беларусь  
Дата: 22.04.09 06:23
Оценка: +1
Думаю тебе нужен

OpCodes..::.Conv_R8 Field

Converts the value on top of the evaluation stack to float64.


Или _R4 если нужен float dvtcnj double
---
http://azarkevich.blogspot.com/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.