日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C#反射实例No.1

發布時間:2025/7/25 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#反射实例No.1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 創建用于反射使用的DLL

新建一個C#類庫項目,拷貝源代碼如下,編譯生成DLL(假如DLL的文件名是TestReflect.dll)

?1using?System;
?2
?3namespace?Webtest
?4{
?5?/**////?<summary>
?6?///?ReflectTest?的摘要說明。
?7?///?</summary>

?8?public?class?ReflectTest
?9?{
10??public?ReflectTest()
11??{}
12
13??public?string?WriteString(string?s)
14??{
15???return?"歡迎您,"?+?s;
16??}

17
18??/**////?<summary>
19??///?dsajkjflasjdfalksdjfaskfd
20??///?</summary>
21??///?<param?name="s"></param>
22??///?<returns></returns>

23??public?static?string?WriteName(string?s)
24??{
25???return?"歡迎您光臨,"?+?s;
26??}

27
28??public?string?WriteNoPara()
29??{
30???return?"您使用的是無參數方法";
31??}

32?}

33}

34
35
36

2 應用于反射的例子

在ASPNET頁面中加入以下函數:

?1public?void?test1()
?2??{
?3???System.Reflection.Assembly?ass;
?4???Type?type?;
?5???object?obj;
?6???try
?7???{
?8????ass?=?System.Reflection.Assembly.LoadFile(@"d:\TestReflect.dll");
?9????type?=?ass.GetType("Webtest.ReflectTest");//必須使用名稱空間+類名稱
10????System.Reflection.MethodInfo?method?=?type.GetMethod("WriteString");//方法的名稱
11????obj?=?ass.CreateInstance("Webtest.ReflectTest");//必須使用名稱空間+類名稱
12????string?s?=?(string)method.Invoke(obj,new?string[]{"jianglijun"});?//實例方法的調用
13???
14????Response.Write(s+"<br>");
15????method?=?type.GetMethod("WriteName");//方法的名稱
16????s?=?(string)method.Invoke(null,new?string[]{"jianglijun"});?//靜態方法的調用
17????Response.Write(s+"<br>");
18
19????method?=?type.GetMethod("WriteNoPara");//無參數的實例方法
20????s?=?(string)method.Invoke(obj,null);
21????Response.Write(s+"<br>");
22????method?=?null;
23???}

24???catch(Exception?ex)
25???{
26????Response.Write(ex+"<br>");
27???}

28???finally
29???{
30????ass?=?null;
31????type?=?null;
32????obj?=?null;
33???}

34??}

35

轉載于:https://www.cnblogs.com/tuyile006/archive/2007/01/16/621388.html

總結

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

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