C#控制台 assembly与getmethod获取一个dll中的类的公有函数名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#控制台 assembly与getmethod获取一个dll中的类的公有函数名相关的知识,希望对你有一定的参考价值。

1 dll中有两个类

 

class1

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ClassLibrary1
 8 {
 9     public class Student
10     {
11         private int _ageStudent;
12         private string _nameStudent;
13         public int AgeStudent { get; set; }
14         public int NameStudent { get; set; }
15         public void HelloWorldStudent() { Console.WriteLine("hello world,i am a Student"); }
16 
17     }
18 }

 

 

 

 

class2

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ClassLibrary1
 8 {
 9     public class Teacher
10     {
11         private int _ageTeacher;
12         private string _nameTeacher;
13         public int AgeTeacher { get; set; }
14         public int NameTeacher { get; set; }
15         public void HelloWorldTeacher(){Console.WriteLine("hello world,i am a teacher");}
16     }
17 }

 

 

 

2 code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Reflection;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 
 8 namespace ConsoleApplication13
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             string path = @"D:\\用户目录\\我的文档\\visual studio 2015\\Projects\\ConsoleApplication13\\ClassLibrary1\\bin\\Debug\\ClassLibrary1.dll";
15             Assembly dllFile = Assembly.LoadFile(path);
16             Type[] classType = dllFile.GetTypes();
17 
18             foreach (var item in classType)
19             {
20                 //item现在是类
21                 Console.WriteLine(item.Name);
22 
23                 //类下面有许多的函数成员
24                 MethodInfo[] methods = item.GetMethods();
25                 foreach (var itemOfMethod in methods)
26                 {
27                     Console.WriteLine(itemOfMethod.Name);
28                 }
29                 //为了好看
30                 Console.WriteLine();
31             }
32 
33             Console.ReadKey();
34         }
35     }
36 }

 

 

 

3 show

技术分享

 

以上是关于C#控制台 assembly与getmethod获取一个dll中的类的公有函数名的主要内容,如果未能解决你的问题,请参考以下文章

C#控制台 assembly与fullname获取一个dll中所有的命名空间

C#控制台 getmethods获取一个类及父类中共有的方法名

C#控制台 assembly通过绝对路径获得一个dll

C#控制台 获取当前调试的exe的绝对路径 Assembly.GetExecutingAssembly().Location

C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod("Add");

针对程序集 'SqlServerTime' 的 ALTER ASSEMBLY 失败,因为程序集 'SqlServerTime' 未获授权(PERMISSION_SET