反射+配置文件

本文探讨了.NET中的反射机制,它是获取运行时类型信息的方式,允许动态加载和调用程序集中的类和方法。通过配置文件,我们可以动态获取连接字符串等信息。示例展示了如何使用ConfigurationManager读取配置文件并利用Assembly.Load()加载程序集。理解反射对于实现灵活的代码和工厂模式至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机房重构遇到了反射+配置文件,查了一些资料,接下来了解一下

1.什么是反射:

Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息。

2.反射的作用:

在.Net Framework中提供了反射机制,可以在加载程序运行时,动态的获取和加载程序集(dll也就是动态链接库),获取程序集的信息,可以对程序集的类进行实例化,调用类中的方法。也就是说,在.Net Framework中提供了反射机制,可以在加载Factory层运行时,动态的获取和加载DAL层(dll也就是动态链接库),获取DAL层的信息,可以对DAL层的类进行实例化,调用DAL层类中的方法等。

3.代码实例:

配置文件:

这里有两个键值对,key值value值

第二对key,value值对应sqlHelper中的代码,可以看出从配置文件获取的字符串connstr对应配置文件的key值

ConfigurationManager:读取配置文件

AppSettings:获取配置文件数据

ConnStr:连接字符串

工厂层:

配置文件中的第一对key,value值对应工厂层的代码,DB对应key值,StrDB对应value值

StrDB +"." + "CheckDAL" =DAL.CheckDAL

4.Assembly类

在程序中,如果我们要动态加载一个程序集怎么办呢?有几种方式可以使用,分别是Load,LoadFrom和LoadWithPartialName三个Assembly的静态方法.主要说一下Load方法

Assembly.Load()方法,该方法会有多个重载版本,其中一个就是提供程序集的详细信息,即程序集的标识,包括程序集的名称,版本,区域信息,公有密钥标记,全部都是以一个字符串的形式提供;

关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")
而不管在哪一层写这段代码其中的("程序集")读取的实际是web层bin文件夹下的dll,也就是说你反射的类的程序集dll在web层的bin下必须有
注意CreateInstance()一定是命名空间.类名,否则创建的实例为空
Assembly.Load("程序集名")

 

 

 

 

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值