zoukankan      html  css  js  c++  java
  • 反射学习系列3反射实例应用

    反射学习系列目录

    反射学习系列1-反射入门

    反射学习系列2-特性(Attribute)

    反射学习系列3-反射实例应用

    作者

    例子这个东西其实挺难弄得,弄个简单的,虽然能说明问题但却容易让人觉得没实用价值,弄个有实用价值却又往往牵扯很多别的技术甚至牵扯很多业务逻辑,看起来很复杂很难懂。在这里我尽量追求几个有实用价值又不复杂的例子。
    1、使用反射通过读取配置文件来动态的创建相关类的对象

    我们先来看看Main函数和需要动态加载的对象在同一个程序集的情况

    结构图:


    接口

    接口
    TextFileLog
    XmlFileLog
    App.config配置
    主程序

    如果在不同的程序集下,那主函数和配置会略有不同

    不同程序集主函数

    这部分源码下载

    源码下载


    2、插件编程技术
    插件是指遵循一定的接口规范、可以动态加载和运行的程序模块。从上面的例子可以看出,通过反射可以非常方便的动态加载程序集。因此,利用反射的动态加载代码能力,可以很容易的实现插件。插件编程的要点是使用接口来定义插件的功能特征。插件的宿主程序通过接口来确认、装载和执行插件的功能,实现插件功能的所有类都必须实现定义插件的接口。

    这里只是选贴一部分代码,详细分析请看源码

    结构图

    接口部分

    接口

    宿主实现

    宿主实现

    ILog的实现和上例基本一样,请参考

    主程序代码

    主程序代码

    插件编程源码下载

    源码下载

    3、分析对象,得到对象中的属性值
    大家使用应都用过asp.net中的DropdownList,在绑定其值的时候绝大多数情况下我们做的都是同样的事情,获得数据源,根据数据源中的某些列绑定控件,下边我们来说说通用情况的处理方式。我们只需要提供数据集合,以及需要绑定到控件的两个属性(text,value)名即可。

    Code
  • 相关阅读:
    (spring-第15回【IoC基础篇】)容器事件
    javascript笔记2-引用类型
    php namespace use 命名空间
    mysql性能优化(二)
    mysql常用命令
    关于有效的性能调优的一些建议[转]
    apache htaccess
    php 换行 空格分割处理
    一些比较好的博文
    php & 引用
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1286640.html
Copyright © 2011-2022 走看看