日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于ILRunTime + FGUI 组合使用的补充

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于ILRunTime + FGUI 组合使用的补充 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

由于現在項目使用的是ILRunTime熱更方式配合FGUI的框架開發,所以項目開發過程中踩了一些坑,由于網上關于ILRunTime +FGUI 的組合用法材料比較有限,所以來記錄一下踩坑的問題、與原因以及解決方法。

問題

報強制轉換錯誤,后來定位到了問題:

發生前提

當前項目規劃把FGUI源碼放在主工程,UI業務都寫在熱更工程中,所以會需要用到跨域繼承,我注冊了GComponent的適配器,工具類UI_Denglu繼承了GComponent,并且CLR綁定了UIPackage的CreateObject方法。

解釋

抽出問題,舉個例子

主工程中 類A 繼承類B

熱更工程 類C繼承主工程類A (已經注冊了跨域適配器)

如果在熱工程中通過工廠類創建得到類C的對象(并且對創建的方法做了CLR綁定),返回值為類B,ILRunTime無法得知類C需要跨域繼承類B,這時候需要強轉為類C時會報轉換錯誤。

解決方法

1.重寫創建方法,使其返回值為類A,由于類A注冊了跨域繼承適配器,轉換為類C沒有問題。

2.如果創建方法使用不很頻繁,可以不使用CLR綁定,但是會犧牲性能使用反射來調用主工程的創建方法。

總結

使用ILRunTime盡量避免間接繼承類的轉換。

補充

類似問題還有 GComponent 的 GetChildAt 和 GetChild 方法,他們也是返回GObject對象,如果項目中需要轉換為繼承GComponent的組件也會出現轉換問題。

總結

以上是生活随笔為你收集整理的关于ILRunTime + FGUI 组合使用的补充的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。