Reflection 如何使用带反射的调用获取ref参数

Reflection 如何使用带反射的调用获取ref参数,reflection,parameter-passing,invoke,ref,Reflection,Parameter Passing,Invoke,Ref,如何使用带反射的调用获取ref参数(OutputData)。 objectValues是一个对象数组,它接受一个参数,并将参数发送到“FM_DEC_ENC”方法。此方法包含8个参数。其中之一是outputdatare参数 mInfo.Invoke("FM_DEC_ENC", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, objectValues,null)

如何使用带反射的调用获取ref参数(OutputData)。 objectValues是一个对象数组,它接受一个参数,并将参数发送到“FM_DEC_ENC”方法。此方法包含8个参数。其中之一是outputdatare参数

 mInfo.Invoke("FM_DEC_ENC", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
                 null, objectValues,null)


通过保留对参数数组的引用,您已经正确地执行了该操作。当该方法返回时,结果将显示在
objectValues[7]

请注意,如果
FM_DEC_ENC
是一个本机方法,它需要一个可修改的缓冲区作为
OutputData
(因为无法修改
System.String
)。在这种情况下

public Int32 FM_DEC_ENC(String AdapterID, String SlotID, String InputData, 
        String DecKeyName, String EncKeyName, HsmCommConstants.ENCRIPTION DecEcbOrCbc,
        HsmCommConstants.ENCRIPTION EncEcbOrCbc, ref String OutputData)