反射dll里面的类的问题

问题描述

Assemblyassem=Assembly.LoadFile(Path.Combine("xxx")Type[]types=assem.GetTypes();使用这两句,是不是能得到任意.net生成出来的dll里面的类?如果不是,使用的时候怎么操作?

解决方案

解决方案二:
顶下,我也正在研究这个问题,如果解决了,发出来一起学习啊,谢谢QQ420910624
解决方案三:
AssemblyLoadDll=Assembly.LoadFrom(DllName);TypeLoadClass=LoadDll.GetType("MtLib.LibTest");我是这样用的,LibTest是DLL中的类名
解决方案四:
楼上的能说的再细点么,不明白啊,那样就可以了么,生成的Type类型后怎么使用啊
解决方案五:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Configuration;usingSystem.Reflection;namespaceConsoleApp{publicdelegatestringdele(stringstr);publicclassBmw{privatestaticintidata;privatecharcdata;publicstaticstringsdata;publicdoubleddata;publicBmw(){}publicBmw(inti){idata=i;}privateBmw(charc){cdata=c;}publiccharCdata{get{returncdata;}set{cdata=value;}}privatestringHa(){Console.WriteLine("haha");return"";}publicstringDisplay(stringstr){return"asdf";}publicvoidDrive(){Console.WriteLine("drivebmw..");}}classProgram{staticvoidMain(){//Assembly.Load().CreateInstance()Assemblya=Assembly.LoadFrom("ConsoleApp.exe");Type[]mytypes=a.GetTypes();Console.WriteLine("thesetypesareincluded...");foreach(Typetinmytypes){System.Console.WriteLine(t.Name);}Typeht=typeof(Bmw);Console.WriteLine("thesemethodsareincluded..");MethodInfo[]info=ht.GetMethods();foreach(MethodInfomininfo){Console.WriteLine(m.Name);}ConstructorInfo[]consinfo=ht.GetConstructors();Console.WriteLine(".................................................");Console.WriteLine("constructoris");foreach(ConstructorInfocinconsinfo){Console.WriteLine(c.Name);}EventInfo[]einfo=ht.GetEvents();Console.WriteLine(".................................................");Console.WriteLine("eventis");foreach(EventInfoeineinfo){Console.WriteLine(e.Name);}FieldInfo[]finfo=ht.GetFields();Console.WriteLine(".................................................");Console.WriteLine("fieldis");foreach(FieldInfofinfinfo){Console.WriteLine(f.Name);}MemberInfo[]minfo=ht.GetMembers();Console.WriteLine(".................................................");Console.WriteLine("memberis");foreach(MemberInfominminfo){Console.WriteLine(m.Name);}PropertyInfo[]pinfo=ht.GetProperties();Console.WriteLine(".................................................");Console.WriteLine("propertyis");foreach(PropertyInfopinpinfo){Console.WriteLine(p.Name);}Console.WriteLine(ht.GetMethod("Display").ToString());BmwB=newBmw();deledel=newdele(B.Display);Console.WriteLine(del("dd"));//Carcar=Drive.DriveCar("benz");//car.Drive();Console.ReadLine();//System.Collections.Generic.}}}
解决方案六:
reflectioncouldbedll,class,assemblyetc.
解决方案七:
我发了篇很简单的反射技术使用的文章,同时写了篇实际项目中的反射应用,希望对你有帮助http://blog.csdn.net/go2newlife/archive/2007/11/27/1904687.aspx

时间: 2024-10-26 01:07:18

反射dll里面的类的问题的相关文章

反射dll里的类的问题

问题描述 System.Reflection.Assemblyassem=System.Reflection.Assembly.LoadFrom(("C:\SpatialEditLib.dll"))Type[]types=assem.GetTypes();foreach(TypedefinedTypeintypes){SpatialEditLib.Data.SpatialDataItem.ShapeDescriptionAttributeHelpAttr;foreach(Attribu

C# 反射 通过类名创建类实例

"反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile("程序集路径,不能是相对路径"); // 加载程序集(EXE 或 DLL) object obj = assembly.CreateInstance("类的完全限定名(即包括命名空间

Delphi从Dll中导出类

从Dll中导出类 ,想必大家首先想到的是使用 bpl 包.这种方式有一个不好 ,那就是使用者必须清楚这个包中含有那些类 ,也就是说必须知道类的名字 -- 这在一定意义上是个限制 ,试想一种情况 ,使用者定义了一个底层的抽象类 (abstract class),然后在此基础上定义了许多应用类 (concrete class),那么 ,对于使用者来说 ,他希望在不知道具体有哪些类的情况下能使用这些类 -- 这 么说似乎有些玄 ,但实际情况确实如此 ,因为定义抽象类的时候并不能预料到以 后会有多少个具

反射APP_CODE下的类和方法

这个问题来自论坛提问. 反射无非这么几步,获取Assembly,获取Type,获取MethodInfo,如果不是static方法则CreateInstance,最后Invoke就可以了.反射APP_CODE下面的类,无非是如何获取Assembly的问题,可以用"__code"或者"app_code"这两个AssemblyName获取.演示代码如下 aspx.cs 01.using System; 02.using System.Reflection; 03.publ

一步一步实现MFC扩展DLL中导出类和对话框

如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框. 一.创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects: 选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击"下一步": 选择Mfc Exte

反射 注解-Java利用反射执行框架注入类的非静态方法

问题描述 Java利用反射执行框架注入类的非静态方法 之前对代码做优化,利用了反射去执行指定类的指定方法: public static JsonResultVO callMethod(Class<?> className String methodName Class<?>[] paramClass Object[] param) { JsonResultVO resultVO = new JsonResultVO(); try { Method m = className.get

4 反射-C# 用反射,怎么获取 类的 类成员的 成员

问题描述 C# 用反射,怎么获取 类的 类成员的 成员 如: class A { string name{get;set;} class B { string name{get;set;} } } 要获取 B.name ,C# 代码要怎么写,,, 解决方案 类的成员包括 fields,constraints,properties,methods,events,operators,indexers,constructors,destructors,Nested Types (字段,常量,属性,方法

vb代码如何获取DLL文件的类模块名?

问题描述 vb代码如何获取DLL文件的类模块名? 知道一个test.dll 的com+组件,如何获取它的类模块名,如:test.clsInfo,test.clsUpdate,test.clsOther,这几个名称怎么用VB代码获取到? 解决方案 参考一下这个试试 http://www.cnblogs.com/pctgl/articles/1352916.html 解决方案二: oelview等查看呢. 解决方案三: 使用VB编写的组件注册与卸载程序 详细说明 使用VB编写的组件注册与组件卸载程序

MFC扩展DLL中导出类和对话框的实现方法_C 语言

本文实例讲述了MFC扩展DLL中导出类和对话框的实现方法,分享给大家供大家参考.具体实现方法如下: 一般来说,如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框. 程序运行结果如下图所示: 一.创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects: 选择Mfc AppWiz