溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

反射示例1-----執(zhí)行反射dll的方法和獲取屬性的值

發(fā)布時間:2020-10-25 11:26:42 來源:網(wǎng)絡 閱讀:3185 作者:1473348968 欄目:編程語言

項目結(jié)構(gòu):

反射示例1-----執(zhí)行反射dll的方法和獲取屬性的值

將Document類庫生成的DLL文件放在ConsoleApplication2\ConsoleApplication2\bin\Debug文件夾下

-------------------------------------------------------------Document.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Document
{
    public class Document
    {
        public string Name = "李四";
        public string GetName(string name)
        {
            return name;
        }
    }
}

 -------------------------------------------------------------Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using System.IO;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //獲取程序集
            Assembly asb = Assembly.LoadFrom(Directory.GetCurrentDirectory() + "/Document.dll");
            //獲取程序集下面的Document類
            Type document = asb.GetType("Document.Document");
            //實例化Document類對象(有參數(shù)的話需要傳遞object參數(shù))
            object docObj = Activator.CreateInstance(document);
            //獲取Document類中的方法
            MethodInfo mi = document.GetMethod("GetName");
            //參數(shù)
            object[] parameter = new object[] { "張三" };
            Console.WriteLine(mi.Invoke(docObj, parameter).ToString());//輸出方法的返回值:張三
            //獲取Document類中的屬性
            FieldInfo pi = document.GetField("Name");
            Console.WriteLine(pi.GetValue(docObj));//輸出方法的屬性:李四
            Console.ReadKey();
        }
    }
}

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI