C#反射应用实例
作者:shichen2014 发布时间:2023-11-03 14:47:46
本文实例讲述了C#反射应用。分享给大家供大家参考。具体如下:
通过反射实现多系统数据库的配置
通过定义接口,反射实例化配置的节点的值
配置App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DAL" value="FactoryInterface.Oracle"/>
</appSettings>
</configuration>
通过System.Configuration.ConfigurationManager.AppSettings读取该key的value,使用Configuration需要将其dll添加到项目中
接口定义:
namespace FactoryInterface
{
interface IDAL
{
void insert();
}
}
Program定义:
namespace FactoryInterface
{
class Program
{
static void Main(string[] args)
{
string config = System.Configuration.ConfigurationManager.AppSettings["DAL"];
Console.WriteLine(config);
Type t = Type.GetType(config);
IDAL dal =(IDAL) System.Activator.CreateInstance(t);
dal.insert();
Console.ReadKey();
}
}
class MySql : IDAL {
public void insert() {
Console.WriteLine("this data insert by MySql");
}
}
class Oracle : IDAL
{
public void insert()
{
Console.WriteLine("this data insert by Oracle");
}
}
}
输出效果如下图所示:
希望本文所述对大家的C#程序设计有所帮助。
猜你喜欢
- 很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同。因此本文就把这些写法总
- 1、 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值。关键代码如下///
- 先给大家展示下效果图:1、验证码生成类:import java.util.Random;import java.awt.imag
- 计数排序是非比较的排序算法,用辅助数组对数组中出现的数字计数,元素转下标,下标转元素计数排序优缺点优点:快缺点:数据范围很大,比较稀疏,会导
- Memento定义:memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态。Memento模式相
- Java动态数组Arraylist存放自定义数据类型class Point{ int x; int y; public Point(int
- C#Windows server2016服务器搭建NFS共享文件夹与C#上传图片到共享文件夹nfs共享文件夹实现步骤基于:Windows s
- 如果出现:org.apache.ibatis.binding.BindingException: Invalid bound stateme
- 本文实例讲述了java用接口、多态、继承、类计算三角形和矩形周长及面积的方法。分享给大家供大家参考。具体如下:定义接口规范:/** * @
- LiveData简介在日常安卓开发中,一些耗时的 * 如列网络请求,数据库读写都不能在主线程执行,必须开一条子线程去执行这些耗时操作,但我们往
- 之前知道spring支持JSR校验,在自己定义的bean中加入@NotNull,@NotBlank,@Length等之类的校验用于处理前台传
- 很多程序员都以自己写的代码的行数作为自己程序员阅历的一个标志,如何统计呢,以下是具体内容。小编,已经快学了两年编程了。昨天突发奇想,想统计下
- 判断某字符串是否为空,为空的标准是str==null或str.length()==01.下面是StringUtils判断是否为空的示例:St
- 在网上也没有找到好的解决方案,于是自己研究了下给解决了,分享给大家,希望对大家能有所帮助。一、异常信息这种情况是因为FTP设置的默认目录引发
- Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都会有各自的用途,以及创建和销毁的时间,有的区
- 首先来看看以下程序将会打印出什么:class Dog { public static void bark
- 对象是使用new创建的,但是并没有与之相对应的delete操作来回收对象占用的内存。当我们完成对某个对象的使用时,只需停止对该对象的引用:将
- 几个月前写过一篇博客《xUtils3.0框架学习笔记》 ,上面也有记录通过xUtils实现文件上传的使用方法,代码如下:private vo
- 文件上传是开发中十分常见的功能,在servlet3.0之前,实现文件上传需要使用一些插件技术,比如:commons-fileuploadsm
- 服务端package lesson02;import java.io.*;import java.net.ServerSocket;impo