一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

全球熱頭條丨unity中的反射:用程序集元數據

來源:CSDN 時間:2023-01-12 10:29:10

反射


(資料圖片)

一個運行的程序查看本身的元數據或其他程序的元數據的行為。

需求

在unity中通過反射加載一個Unity腳本,并以組件的形式添加到對象上。

過程

新建一個空場景,添加一個空物體改名為:ReflectClassName,創建一個腳本:ReflectClassName.cs ,把腳本掛載到物體上。創建目標腳本,TestReflect

using System.Collections;using System.Collections.Generic;using UnityEngine;public class TestReflect : MonoBehaviour{void Start()    {Debug.Log("我是測試反射的腳本");    }}

編寫ReflectClassName腳本

using System;using System.Collections;using System.Collections.Generic;using System.Reflection;using UnityEngine;public class ReflectClassName : MonoBehaviour{private void Start()    {var asmb = System.Reflection.Assembly.Load(Assembly.GetExecutingAssembly().GetName());        var t = asmb.GetType("TestReflect");        gameObject.AddComponent(t);    }}

運行unity

腳本完成添加, 開始語句塊的內容也顯示出來。

反射獲得腳本字段

using System.Reflection;using UnityEngine;public class ReflectClassName : MonoBehaviour{string id;    int hp = 98;    private void Start()    {var asmb = System.Reflection.Assembly.Load(Assembly.GetExecutingAssembly().GetName());        var t = asmb.GetType("TestReflect");        gameObject.AddComponent(t);        FieldInfo[] temps = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);        foreach (var item in temps)        {Debug.Log(item + ":" + item.GetValue(this));        }    }}

運行unity

以下為轉載原地址:https://www.cnblogs.com/feiyuhuo/p/5793606.html

C# 利用反射根據類名創建類的實例對象

“反射”其實就是利用程序集的元數據信息。 反射可以有很多方法,編寫程序時請先導入 System.Reflection 命名空間。

1、假設你要反射一個 DLL 中的類,并且沒有引用它(即未知的類型): Assembly assembly = Assembly.LoadFile(“程序集路徑,不能是相對路徑”); // 加載程序集(EXE 或 DLL) dynamic obj = assembly.CreateInstance(“類的完全限定名(即包括命名空間)”); // 創建類的實例

2、若要反射當前項目中的類(即當前項目已經引用它了)可以為:

Assembly assembly = Assembly.GetExecutingAssembly(); // 獲取當前程序集 dynamic obj = assembly.CreateInstance(“類的完全限定名(即包括命名空間)”); // 創建類的實例,返回為 object 類型,需要強制類型轉換

3、也可以為:

Type type = Type.GetType(“類的完全限定名”); dynamic obj = type.Assembly.CreateInstance(type);

4、不同程序集的話,則要裝載調用,代碼如下: System.Reflection.Assembly.Load(“程序集名稱(不含文件后綴名)”).CreateInstance(“命名空間.類名”, false); 如: dynamic o = System.Reflection.Assembly.Load(“MyDll”).CreateInstance(“MyNameSpace.A”, false);

注意:由于要用到dynamic ,需要把target 改為4.0 ,如果編譯時出現“找不到編譯動態表達式所需的一個或多個類型。是否缺少引用?”的錯誤,是因為缺少一個引用,在項目里引用Miscorsoft.CSharp類庫,添加后就能編譯成功。

補充: 1)反射創建某個類的實例時,必須保證使用類的完全限定名(命名空間 + 類名)。Type.GetType 方法返回 null 則意味搜索元數據中的相關信息失敗(反射失敗),請確保反射時使用類的完全限定名。 2)反射功能十分強大,沒有什么不能實現的。若實現“跨程序集”,請使用第一種方法創建類的實例,并反射該實例的字段、屬性、方法、事件… 然后動態調用之。

////// 反射幫助類    ///public static class ReflectionHelper    {////// 創建對象實例        /////////命名空間.類型名        ///程序集        ///public static T CreateInstance(string fullName, string assemblyName)        {string path = fullName + "," + assemblyName;//命名空間.類型名,程序集            Type o = Type.GetType(path);//加載類型            object obj = Activator.CreateInstance(o, true);//根據類型創建實例            return (T)obj;//類型轉換并返回        }        ////// 創建對象實例        //////要創建對象的類型///類型所在程序集名稱        ///類型所在命名空間        ///類型名        ///public static T CreateInstance(string assemblyName, string nameSpace, string className)        {try            {string fullName = nameSpace + "." + className;//命名空間.類型名                //此為第一種寫法                object ect = Assembly.Load(assemblyName).CreateInstance(fullName);//加載程序集,創建程序集里面的 命名空間.類型名 實例                return (T)ect;//類型轉換并返回                //下面是第二種寫法                //string path = fullName + "," + assemblyName;//命名空間.類型名,程序集                //Type o = Type.GetType(path);//加載類型                //object obj = Activator.CreateInstance(o, true);//根據類型創建實例                //return (T)obj;//類型轉換并返回            }            catch            {//發生異常,返回類型的默認值                return default(T);            }        }    }

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
欧美1区3d| 亚洲欧洲一区二区天堂久久| 久久国产精品99国产| 模特精品裸拍一区| 欧美自拍偷拍| 欧美在线观看一二区| 亚洲精品少妇| 激情久久久久久久| 亚洲福利国产| 夜夜嗨av一区二区三区中文字幕| 一区二区日韩伦理片| 欧美日韩黄色大片| 亚洲欧美一区二区激情| 国产一区二区三区免费观看 | 一区二区三区 在线观看视频| 欧美黄色成人网| 久久aⅴ国产欧美74aaa| 一区二区免费在线视频| 在线色欧美三级视频| 国产一区二区三区在线免费观看| 久久综合九色欧美综合狠狠| 一区二区三区国产精华| 亚洲精品日韩在线观看| 国产欧美日韩一区二区三区在线| 老司机亚洲精品| 欧美高清视频一区二区三区在线观看| 夜夜嗨av一区二区三区网页| 一区二区三区我不卡| 老巨人导航500精品| 你懂的国产精品永久在线| 噜噜爱69成人精品| 欧美日韩亚洲91| 欧美日韩免费视频| 国产精品一区二区男女羞羞无遮挡| 欧美日韩国产区| 国产精品久久久久免费a∨大胸| 欧美日韩高清在线一区| 免费日韩精品中文字幕视频在线| 久久精品男女| 欧美日韩三级| 在线欧美日韩国产| 亚洲图片欧美日产| 久久精品毛片| 欧美激情综合五月色丁香小说| 欧美喷潮久久久xxxxx| 国产伦精品一区二区| 在线精品一区| 欧美一二三视频| 欧美精品一区在线| 国产精品久线观看视频| 黄色日韩网站视频| 一个人看的www久久| 久久久久国产精品厨房| 国产精品一区久久| 亚洲一区二区三区四区五区午夜 | 国产视频亚洲| 日韩图片一区| 欧美精品久久99| 亚洲第一主播视频| 久久成人精品电影| 国产网站欧美日韩免费精品在线观看 | 国产女人18毛片水18精品| 一区二区三区免费观看| 欧美成人性网| 亚洲国产精品一区制服丝袜 | 欧美.日韩.国产.一区.二区| 国产精品夜夜嗨| 亚洲激情视频网站| 欧美.日韩.国产.一区.二区| 最新日韩在线视频| 欧美精品高清视频| 亚洲一区在线免费| 国内精品视频在线播放| 久久夜色精品国产| 在线精品视频在线观看高清| 美女视频网站黄色亚洲| 99re6热只有精品免费观看| 欧美精品电影在线| 欧美在线网址| 亚洲一区观看| 亚洲国产精品一区| 国产精品卡一卡二| 久久综合色一综合色88| 亚洲欧美日韩一区二区在线 | 久久国产一区二区三区| 国产精品一级| 欧美日韩卡一卡二| 久久精品一区四区| 夜夜嗨av色综合久久久综合网| 国产日韩在线一区二区三区| 欧美激情黄色片| 久久久精品日韩欧美| 午夜精品久久久| 亚洲一区制服诱惑| 激情久久中文字幕| 黄色成人精品网站| 国产一区二区看久久| 国产视频精品网| 国产亚洲成av人片在线观看桃| 欧美日韩精品免费在线观看视频| 欧美中文在线观看国产| 一本久久a久久免费精品不卡| 亚洲国产精品久久精品怡红院 | 在线观看视频一区二区| 国产日产高清欧美一区二区三区| 欧美国产日韩免费| 老**午夜毛片一区二区三区| 久热爱精品视频线路一| 欧美精品一区在线播放| 欧美日韩免费在线观看| 国产欧美一区二区精品忘忧草| 国产精品网站在线| 国产精品推荐精品| 激情小说另类小说亚洲欧美 | 欧美激情久久久久| 国产精品毛片一区二区三区| 国产一区二区观看| 一本色道婷婷久久欧美| 亚洲永久免费精品| 久久尤物电影视频在线观看| 欧美日韩免费| 精品成人一区二区三区| 99精品视频免费全部在线| 亚洲综合大片69999| 久久gogo国模裸体人体| 久久躁日日躁aaaaxxxx| 免费人成精品欧美精品| 国产精品免费看| 日韩一区二区精品葵司在线| 亚洲在线观看视频网站| 欧美精品久久99久久在免费线| 国产精品五区| 日韩亚洲国产欧美| 久久伊人精品天天| 国产亚洲日本欧美韩国| 中国日韩欧美久久久久久久久| 久久激五月天综合精品| 国产精品视频久久一区| 亚洲无线视频| 欧美色另类天堂2015| 日韩亚洲欧美一区二区三区| 女人天堂亚洲aⅴ在线观看| 在线播放中文一区| 蜜臀久久久99精品久久久久久| 狠狠色丁香婷综合久久| 久久嫩草精品久久久久| 国产一区二区日韩精品| 久久久久久9| 91久久亚洲| 国产精品自拍视频| 久久综合久色欧美综合狠狠| 亚洲激情专区| 国产精品福利网| 欧美一区免费视频| 含羞草久久爱69一区| 女女同性精品视频| 9人人澡人人爽人人精品| 国产精品福利av| 欧美va亚洲va香蕉在线| 亚洲性线免费观看视频成熟| 国产农村妇女精品一区二区| 亚洲欧美成aⅴ人在线观看| 国产在线精品一区二区中文| 欧美日韩福利在线观看| 久久久久久久久久久一区 | 黑人巨大精品欧美黑白配亚洲 | 欧美国产日韩亚洲一区| 亚洲美女黄色| 91久久精品美女高潮| 精品成人国产| 国产自产在线视频一区| 欧美好骚综合网| 蜜臀久久久99精品久久久久久| 午夜久久久久久久久久一区二区| 亚洲高清激情| 国产视频一区二区在线观看| 国产精品jizz在线观看美国| 鲁大师成人一区二区三区| 久久久久久久久久久一区| 亚洲精品中文字幕在线| 亚洲黄色大片| 亚洲理伦在线| 亚洲午夜三级在线| 亚洲欧美精品一区| 久久国产天堂福利天堂| 蜜桃伊人久久| 免费欧美日韩| 欧美高潮视频| 欧美极品在线视频| 国产精品swag| 国产一区二区三区在线免费观看| 狠狠色丁香久久婷婷综合丁香| 韩国av一区二区三区| 亚洲日本视频| 亚洲欧美国产一区二区三区| 日韩一区二区免费高清| 亚洲自拍16p| 久久成人精品电影| 另类国产ts人妖高潮视频| 国产精品国产三级国产普通话蜜臀|