C#高级语法(反射)查找dll文件中的所有类、构造函数、参数 |
您所在的位置:网站首页 › 如何查看dll文件中的函数是否正确 › C#高级语法(反射)查找dll文件中的所有类、构造函数、参数 |
首先加载dll文件 方法一:Assembly assembly = Assembly.Load("DLL文件名”); 这里路径其实是相对路径 这种方法需要将dll文件放在执行项的执行文件夹中,例如debug。或者直接引用也可。 b. 方法二:Assembly assembly = Assembly.Load("DLL文件的绝对路径”); c. 方法三: Assembly assembly = Assembly.LoadForm(@"xxx.dll") i. 这种方法引入相对或者绝对路径都可以 获取指定类型(就是获取dll文件的某个类) Type type = assembly.GetType("dll文件名.类名"):(这里前提知道类名) b.如果不知道dll文件中有那些类,可以遍历获取 从而查找自己需要的类型 foreach (var item in assembly3.GetTypes()) { Console.WriteLine(item.Name); }如果构造方式是私有的,那么就在那么就在GetConstructors(BindingFlags.instance|Bindflags.NoPublic),意思就是查找非公开或者实例化的构造方法都要找出来 默认是查找公开的 。如果不是私有 就不需要加BindingFlags.instance|Bindflags.NoPublic foreach (var item in Typetype.GetConstructors()) { Console.WriteLine("构造方法获取"); foreach (var param in item.GetParameters()) { Console.WriteLine($"构造方法的参数{param.ParameterType}"); } }实例化类 静态实例化 Reflection reflection = new Reflection(); 其中Reflection为dll文件中的类名 动态实例化 object object1 = Activator.CreateInstance("Typetype");//Typetype这里是上面的类 这是调用无参构造 ii. object object2 = Activator.CreateInstance(Typetype,new object[] { "ant编程"});//调用了有参构造方法 iii. //调用私有的构造函数 object object3 = Activator.CreateInstance(Typetype, true); |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |