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
  • 相关阅读:
    python基础26——派生&多态&绑定与非绑定方法
    python基础25——继承&属性查找&多继承的菱形问题&Mixins机制
    emmm......就当练习了系列20
    python基础24——封装&property
    emmm......就当练习了系列19
    python基础23——面向对象
    [转]N年Python老司机,血泪总结新手常见10大错误
    ATM机+购物车
    python基础22——logging模块&
    emmm......就当练习了系列18
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1286640.html
Copyright © 2011-2022 走看看