Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница:

 

  Вопрос: VB.NET использование ILGenerator Добавлено: 21.01.05 14:26  

Автор вопроса:  ПтирЯ
Возникла необходимость динамически создать следующий класс

public class A
public Sub Exec(byref Factory as Object)

Factory.A="New Value"
end Sub

end class

При просмотре ILDasm код выглядит следующим образом:
.method public instance void Exec(object& Factory) cil managed
{
  // Code size 31 (0x1f)
  .maxstack 6
  .locals init (object[] V_0)
  IL_0000: ldarg.1
  IL_0001: ldind.ref
  IL_0002: ldnull
  IL_0003: ldstr "A"
  IL_0008: ldc.i4.1
  IL_0009: newarr [mscorlib]System.Object
  IL_000e: stloc.0
  IL_000f: ldloc.0
  IL_0010: ldc.i4.0
  IL_0011: ldstr bytearray (1D 04 3E 04 32 04 3E 04 35 04 20 00 37 04 3D 04 // ..>.2.>.5. .7.=.
                                  30 04 47 04 35 04 3D 04 38 04 35 04 ) // 0.G.5.=.8.5.
  IL_0016: stelem.ref
  IL_0017: ldloc.0
  IL_0018: ldnull
  IL_0019: call void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.LateBinding::LateSet(object,class [mscorlib]System.Type, string,object[],string[])
  IL_001e: ret
} // end of method A::Exec

Получилось все за исключением строки :
IL_0019: call void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.LateBinding::LateSet(object,class [mscorlib]System.Type, string,object[],string[])

Прописываю строку MIL.Emit(OpCodes.Call, ), но вот какой оргумент нужно подстваить, который преобразовался в нужную строку, так и не смог найти.

Заранее благодарен за ответ!

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам