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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

谈谈C#反射(Reflection)

發布時間:2024/7/5 C# 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谈谈C#反射(Reflection) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

反射是什么?官方給出的解釋:反射提供了封裝程序集、模塊和類型的對象(System.Type類型)。可以使用反射動態創建類型的實例,將類型綁定到現有對象,或從現有對象獲取類型并調用其方法或訪問其字段和屬性。

個人理解:在運行態下,動態訪問、修改自身的功能。今天我們利用反射為程序動態加載程序集(Assembly),System.Reflection命名空間是我們實現該功能的基礎。

代碼如下:

public static void Main(string[] args) {//AssemblyResolve事件在.Net對程序集解析失敗時觸發,返回一個Assembly對象。AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(OnResolve);//功能Startup(); }public static Assembly OnResolve(object sender, ResolveEventArgs args) {var assemblyName = new AssemblyName(args.Name);string path = "";if (assemblyName.Name.EndsWith("WuXiaoBo"))path = @"C:\Program Files\Java\wuxiaobo.dll";if (string.IsNullOrEmpty(path) == false&& File.Exists(path))return Assembly.LoadFrom(path);return null; }public static void Startup() {//調用程序集中包含的接口,接口不能直接放在Main中。 }

代碼很簡單,就不過多解釋了。

?

參考資料:

https://docs.microsoft.com/zh-cn/dotnet/api/system.appdomain.assemblyresolve?view=netframework-4.6.1

https://www.cnblogs.com/darrenji/archive/2014/09/26/3995450.html

http://blog.junwen38.com/archives/656

轉載于:https://www.cnblogs.com/boxy/p/11453809.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的谈谈C#反射(Reflection)的全部內容,希望文章能夠幫你解決所遇到的問題。

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