Pergunta

Eu tenho o seguinte setter-método, mas o objeto que eu colocar em value não é colocado através do método chamado:

.method public hidebysig specialname instance void set_SeatingCapacity(int32 'value') cil managed
{
    .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
    .maxstack 3
    L_0000: ldc.i4 0x6c
    L_0005: ldarg.0 
    L_0006: ldfld int32 Young3.FMSearch.Core.Entities.InGame.BaseObject::MemoryAddress
    L_000b: ldarg.1 
    L_000c: call void Young3.FMSearch.Core.Managers.PropertyInvoker::Set(int32, int32, object)
    L_0011: ret 
}

Eu quero chamar a função em L_000c como Set(0x6c, ldfld MemoryAddress, value). Os dois primeiros campos estão correctamente enviada para a função. Qualquer pista? Parece bastante bem quando fazendo algo semelhante e olhando para a definição no refletor.

Foi útil?

Solução

Eu tive que fazer uma box int32, ou fazendo Set em Set<T>.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top