在反射中提供指向 GetField.SetValue 的指针
本文关键字:GetField SetValue 指针 反射 | 更新日期: 2023-09-27 18:32:33
解决这个问题后,我的任务中还剩下一个错误(之前关于 ApiID 的问题)。使用反射,我想设置一个字段,这是一个指针:
public class TxObjectImpl : IDisposable
{
protected unsafe ApiId* _id;
}
我尝试像这样实现它:
object _apiId = new ApiId();
ApiId apiID = (ApiId)_apiId;
ApiId* pointer = &apiID;
typeof(TxObjectImpl).GetField("_id", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(_TxObjectImpl, pointer);
Visual Studio给了我这个错误:
参数类型"ApiId*"不可分配给参数类型"对象"
这在反射中甚至可能吗?
你必须先将指针投射到IntPtr
。
.SetValue(_TxObjectImpl, (IntPtr) pointer)