动态加载外部程序集并用反射获取指定类型的信息

        通过System.Reflection命名空间下的Assembly类可以动态加载外部程序集,其中Load()方法和LoadFrom()方法。

        Load()方法用于加载当前程序集位于相同目录下的外部程序集,需要提前添加外部程序集的引用。

        LoadFrom()方法可以加载其他目录中的程序集,需要书写完整目录。

        下例中,首先建立项目MethodRef3,然后建立类AppClassRef代码如下所示,外部程序集为项目MethodRef2,建立类ClassRef,类中代码见《利用反射技术获取当前程序集指定类型的信息》,这里模拟在项目MethodRef3中调用外部程序集MethodRef2.exe中的类信息。

 

 

测试:输入外部程序集MethodRef2。exe里的类名ClassA,则输出类ClassA的详细信息
==============当前应用程序域中所有加载的程序集=====================
程序集:mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e
089
程序集:mscorlib.resources, Version=2.0.0.0, Culture=zh-CHS, PublicKeyToken=b77a
5c561934e089
程序集:MethodRef3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
请输入检测类型名称:MethodRef2.ClassA

类名:MethodRef2.ClassA(如果有命名空间要加命名空间,此处命名空间为MethodRef2
此类是否为泛型:False
此类是否为接口:False
此类是否为类类型:True
此类是否为COM对象:False
此类是否为public访问类型:False
此类是否为密封类型:False
此类是否为值类型:False
        成员类型:Method,名称:get_Name
        成员类型:Method,名称:MethodA
        成员类型:Method,名称:MethodB
        成员类型:Method,名称:ToString
        成员类型:Method,名称:Equals
        成员类型:Method,名称:GetHashCode
        成员类型:Method,名称:GetType
        成员类型:Constructor,名称:.ctor
        成员类型:Property,名称:Name
        成员类型:Field,名称:_name
MethodRef2.ClassA实现的接口类型MethodRef2.IClassA
MethodRef2.ClassA实现的接口类型MethodRef2.IClassB

==============当前应用程序域中所有加载的程序集=====================
程序集:mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e
089
程序集:mscorlib.resources, Version=2.0.0.0, Culture=zh-CHS, PublicKeyToken=b77a
5c561934e089
程序集:MethodRef3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
程序集:MethodRef2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
请输入检测类型名称:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值