Domanda

Ho il seguente metodo setter, ma l'oggetto che ho inserito in value non viene passato al metodo chiamato:

.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 
}

Voglio chiamare la funzione in L_000c come Set(0x6c, ldfld MemoryAddress, value). I primi due campi sono correttamente registrati nella funzione. Qualche idea? Sembra abbastanza buono quando si fa qualcosa di simile e si osserva la definizione in Reflector.

È stato utile?

Soluzione

Ho dovuto fare un box int32, o trasformando Set in Set<T>.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top