亚洲乱码一卡二卡四卡乱码新区_亚洲乱码中文字幕小综合_亚洲人成电影在线播放_亚洲性色AV一区二区三区_亚洲一区二区三区影院_亚洲中文字幕久久精品无码A_亚洲中文字幕无码专区_伊人热热久久原色播放WWW_在线观看AV永久免费_最新欧洲大片免费在线,欧美日韩成人三级免费看,久久黄色网址,欧美激情内射喷水高潮

首頁
社區(qū)
課程
招聘
Unity如何反射獲得泛型函數(shù)的地址,?
wx_嗨 2022-12-21 1564

例如:
public sealed class Action<T> : MulticastDelegate
public virtual void Invoke(T obj) { }
利用Il2cppDumper可以獲得具體類型的函數(shù)地址
|-RVA: 0x3A25D14 Offset: 0x3A25D14 VA: 0x3A25D14
|-Action<bool>.Invoke
但是利用il2cpp_class_get_method_from_name獲取Action`1中的Invoke函數(shù)獲取不到0x3A25D14 這個偏移。
查詢相關(guān)資料,,發(fā)現(xiàn)可以用函數(shù)MakeGenericMethod獲取
public virtual MethodInfo MakeGenericMethod(Type[] typeArguments) { }
但是該函數(shù)的參數(shù)位Type[],,我通過Assembly_GetType("System.Boolean")獲取Type,,調(diào)用MakeGenericMethod失敗,,構(gòu)造Array調(diào)用也失敗,,請問要如何構(gòu)造這個參數(shù),完成Action<bool>.Invoke函數(shù)地址的獲?。炕蛘呤欠裼懈梅椒軌蜃止?jié)得到Action<bool>.Invoke的函數(shù)地址,?

收藏
1條回答
Niceto 2022-12-26

在 Unity 中,,你可以使用 System.Reflection 命名空間中的 MethodInfo 類來獲取泛型函數(shù)的地址。

 

下面是一個例子,,展示了如何使用反射獲取泛型函數(shù)的地址:

段落引用
插入代碼using System.Reflection;

 

// 假設(shè)有一個泛型函數(shù):
void MyGenericFunction<T>(T arg) { }

 

// 使用反射獲取泛型函數(shù)的地址
MethodInfo method = typeof(MyClass).GetMethod("MyGenericFunction");

 

// 獲取泛型函數(shù)的類型參數(shù)列表
Type[] typeArguments = method.GetGenericArguments();

 

// 使用 MakeGenericMethod 方法創(chuàng)建泛型函數(shù)的實例
MethodInfo genericMethod = method.MakeGenericMethod(typeof(int));

 

在這個例子中,,我們使用 Type.GetMethod 方法獲取泛型函數(shù)的 MethodInfo 對象,然后使用 MethodInfo.GetGenericArguments 方法獲取泛型函數(shù)的類型參數(shù)列表,,最后使用 MethodInfo.MakeGenericMethod 方法創(chuàng)建泛型函數(shù)的實例,。

回復