[DSAPI.DLL下载地址]


      在.Net中,反射技术是一种入门困难,熟用快速的东西,对于没有接触过反射技术的程序员来说的确是头疼的,看一旦自己写过了,上手就非常简单了.在本节,将部分.NET反射技术进行了简化,使得能在开发软件时节省大量代码.

在DSAPI.DLL中,封装了以下反射相关的功能:

DSAPI.反射相关.反射Dll中所有窗体

DSAPI.反射相关.反射Dll中所有窗体名称

DSAPI.反射相关.反射Dll中所有指定开头文本的窗体

DSAPI.反射相关.反射Dll中所有指定开头文本的窗体名称

DSAPI.反射相关.反射Dll中指定窗体

DSAPI.反射相关.判断是否Dll中包含指定名称的成员

DSAPI.反射相关.序列化

DSAPI.反射相关.执行Dll中指定函数

示例代码:

Dim Frms As List(Of Form) = DSAPI.反射相关.反射Dll中所有窗体("c:\1.dll")
获取目标DLL(必须是.NET编写的DLL)中所有的窗体列表.

Dim Forms As List(Of String) = DSAPI.反射相关.反射Dll中所有窗体名称("c:\1.dll")
获取目标DLL中所有的窗体名称

Dim Frms As List(Of Form) = DSAPI.反射相关.反射Dll中所有指定开头文本的窗体("c:\1.dll", "Frm_")
获取目标DLL中所有指定字串开头的窗体

Dim Forms As List(Of String) = DSAPI.反射相关.反射Dll中所有指定开头文本的窗体名称("c:\1.dll", "Frm_")
获取目标DLL中所有指定字串开头的窗体名称列表

Dim F As Form=DSAPI.反射相关.反射Dll中指定窗体 ("c:\1.dll","Frm_Dlg")
创建并返回指定DLL中类名的Form

Dim Bl As Boolean = DSAPI.反射相关.判断是否Dll中包含指定名称的成员("c:\1.dll", "Frm_Dlg")
判断目标DLL中是否存在名称为"Frm_Dlg"的成员

Dim X As Integer = DSAPI.反射相关.执行Dll中指定函数("c:\1.dll", "Class1", "GetVa", "1")
执行并返回目标DLL中指定类名下的函数或方法,注意,要被执行的函数或方法必须带有参数,即使该参数不用.
如:

 Public Function GetVa(V As Integer) As Integer  '当使用上述代码远程执行时,必须指定一个参数,如V As Integer

        Return V + 100

    End Function

序列化

下面演示如何快速使用序列化功能

序列化,常用的做法就是将一个对象保存为数据流或者文件保存到硬盘上.以下演示如何使用DSAPI.DLL中序列化功能

假设有一个游戏数据类
</pre><pre name="code" class="vb"> Public Class GameData
Public GameName As String = "abc"
Public Level As Integer = 10
Public Gold As Integer = 1000
End Class

保存或读取游戏进度可以是这样:


  Private Sub Cd()
Dim Sz As New DSAPI.反射相关.序列化
Dim Gd As New GameData
'---保存到硬盘文件
Sz.序列化("c:\save.sav", Gd)
'---保存到数据流
Dim M As New IO.MemoryStream
Sz.序列化(M, Sz)
'---从文件反序列化到内存
Dim Obj As GameData = Sz.反序列化("c:\save.sav")
'---从数据流反序列化到内存
Dim Obj2 As GameData = Sz.反序列化(M)
End Sub

DSAPI多功能组件编程应用-反射相关的更多相关文章

  1. DSAPI多功能组件编程应用-网络相关(上)

    [DSAPI.DLL下载地址]  DSAPI多功能组件编程应用-网络相关,网络相关编程有很多很多,这里讲解一下封装在DSAPI中的网络相关的功能,这些都是本人简化到极点的功能了,可以在软件开发过程中节 ...

  2. DSAPI多功能组件编程应用-网络相关(下)

    [DSAPI.DLL下载地址] 在本篇,我将重点介绍DSAPI.DLL中Socket编程的使用.众所周知,Socket用起来不难,但是写起来麻烦.我对Socket进行了封装,进行了高度简化.下面我将通 ...

  3. DSAPI多功能组件编程应用-网络相关(中)

    [DSAPI.DLL下载地址] 在中篇,我将演示比上篇稍微复杂点的功能.如HTTP监听和局域网广播. 有时,我们会有这样的需求:用户通过浏览器来访问获取数据,我们的程序需要监听指定端口,根据不同的请求 ...

  4. DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

    前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...

  5. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

  6. DSAPI多功能组件编程应用-文件类

    [DSAPI.DLL下载地址]     本节内容,是属于"无需过多说明"就能使用的功能.由于实在是太简单,我就简单地示例一下. DSAPI.文件类.获取可读性强的字节大小信息(&q ...

  7. DSAPI多功能组件编程应用-HTTP监听服务端与客户端

    本文中,演示了使用DSAPI.网络相关.HTTP监听,快速建立服务端和客户端. HTTP监听服务端的作用,是监听指定计算机端口,以实现与IIS相同的解析服务,提供客户端的网页请求,当然,这不仅仅是应用 ...

  8. DSAPI多功能组件编程应用-DS提示气泡

    首先下载DSAPI.dll.并在项目中引用. 该功能包括在DSAPI1.0.1.1及更高版本号,DLL请到本人资源里查找. Private Sub Button1_Click(sender As Ob ...

  9. DSAPI多功能组件编程应用-使用外部字体(包括资源文件)

    在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...

随机推荐

  1. python入门 -- 环境搭建(windows)

    1. 下载Anaconda Anaconda内置了python解释器及经常使用的库,提供了编译好的环境.根据自己的操作系统,自行从下面网站挑选一个较新的版本,下载安装即可. https://mirro ...

  2. python获取多线程的返回值

    import threading class MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,s ...

  3. 查看 FormData 中已存在的值

    var formData = new FormData(); formData.append('name','bob'); formData.append('sex','male'); formDat ...

  4. Bandwagon的配置记录(一) —— kexue上网

    写在前面 这是kexue上网的一种方法. 看文章前,先拉最底下,看一遍“写在最后”. 租个服务器 我租了个洛杉矶的服务器,系统是ubuntu16.04 x86_64 进入KiwiVM Control ...

  5. CentOS7设置SVN自启动,提交报错,无权限.手动kill掉后重启,成功.

    参考文档:http://tieba.baidu.com/p/5174054662 最近想尝试在CentOS7上搭建SVN服务.遇到的问题大致如题,我这边再详细描述一下. 虚拟机:VMware® Wor ...

  6. java 的基本数据类型及转换

    数据类型精度: byte 8 位short 16 位int 32 位long 64 位float 32 位double 64 位char 16 位 boolean 占几位要看 jvm 的具体实现, 虽 ...

  7. php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序

    最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...

  8. 酒店管理系统ER图

  9. [Swift]LeetCode223. 矩形面积 | Rectangle Area

    Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defined b ...

  10. [Swift]LeetCode433. 最小基因变化 | Minimum Genetic Mutation

    A gene string can be represented by an 8-character long string, with choices from "A", &qu ...