RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
jstovb点虐 的简单介绍

基于java jsp asp php vb安卓系统毕业设计与实现论文源码下载?

及时送上了计算机毕业设计相关资源 合意的换请采纳一下,大家顺遍点下赞吧

我们提供的服务有:成都网站建设、网站制作、微信公众号开发、网站优化、网站认证、苏仙ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的苏仙网站制作公司

在线考试制卷系统(任务书,论文,源码)

net小型证券术语解释及翻译系统的设计与开发(源码,论文)

原创vf员工培训管理系统(任务书,论文)

asp科研信息管理系统(任务书,开题,论文,源码)

android小型企业工资管理系统(源码,论文)

asp出租车管理系统(任务书,论文,源码)

vb点虐 实验室计算机的ip地址自动设置程序——服务器端(任务书,论文,源码)

rsa可视化算法程序的实现与研究(任务书,论文)

j2ee数控加工技术教学素材资源库的构建(任务书,论文,源码)

eims系统-oa子系统的设计与开发(任务书,开题,论文,源码)

jsp网上购书(任务书,论文)

vb图书管理系统(任务书,论文)

vc户籍管理系统(任务书,论文,源码)

php基于bs结构的工艺品销售系统的实现(源码,论文)

net模块化动态电子商务网站的开发(任务书,论文,源码)

pb电信人事管理系统设计(任务书,论文)

vb成本费用计算系统(源码,论文)

jsp出租车管理系统(任务书,开题,论文,源码)

asp点虐 求职招聘网站设计(源码,论文)

vb点虐 机房监控系统(全套)

vf学生办证管理系统(任务书,开题,论文,源码)

jsp基于网络超市商品销售管理系统(任务书,论文,源码)

jsp团员管理

asp点虐 一个动态文学网站

vf基于jme平台的掌上网络商店-服务器端的开发

c#报警系统

net(vc)办公自动化管理系统

jsp计算机等级考试查询系统jdbc

vb点虐 商品配送中心库存仿真软件设计

jsp网络购物

net在线英语自学系统——知识库管理的设计

jsp企业进销存管理系统

php某公司进销存信息管理系统

pb干部档案管理系统

delphi学生信息管理系统毕业设计

asp学生信息管理系统

asj2eetoc电子商务网站

delphi图书管理系统(毕业程序翻译%通过)

jsp网上商城系统

jsp客户关系管理系统

jsp企业人事管理系统

c#办公管理系统

jsp搜索引擎的研究与实现

jsp网络房产信息超市

php会员管理系统

j2ee基于usbkey的文件加密工具—-客户端的实现

net网上图书订阅系统的设计

php网站流量统计

asp点虐 团员管理

android文件传输

delphi并行接口器件功能演示的可视化设计学位

php房屋租赁管理信息系统jdbc

数据采集电路pcb的设计与制作

androidsmart系统-考试监控及阅卷模块的设计与开发

java流动资金贷款业务系统

asp电脑配机

vf物流管理系统--仓储管理子系统的实现

简化的cpu逻辑功能的仿真实现

net网上教材管理系统

net高校学生宿舍管理系统

vc药品公司进销售存管理系统

基于des加密算法的word加密插件的实现

asp点虐 基于asp点虐 的房产中介系统

c#简单图片转化

asp基于asp的反垃圾邮件管理系统的设计

delphi航空客运订票系统

c#windows简单防火墙设计与实现

j2ee车间调度系统

php《信息论与编码》在线考试系统

vb点虐 基于角色访问控制的oa系统

asp某小型数字图书馆

vb图形识别和编辑

pb电脑公司财务管理系统

asp网上购书

android光盘信息管理系统

php新闻网程序

php购物系统

vb点虐 考试系统vb点虐

java学生管理系统

基于apriori算法的关联规则挖掘系统

vf布匹出口管理系统

c#会计电算化系统——财务管理子系统

php毕业生信息管理系统

pb酒店客房餐饮管理系统

vf库存管理

asp点虐 药品销售数据管理系统

asp点虐 网上论坛

基于linux的远程控制技术服务端实现

php网络商城

文件压缩与解压缩实践

asp学生管理系统

php科研项目网上申报管理系统

vb点虐 图片文件中的信息隐藏和还原的设计

asp销售供应链管理系统的设计与开发

asp基于asp技术的猎头公司管理软件的设计和实现——内部事务部分

网络求职招聘系统

neterp系统(毕业设计

php基于web的商场管理系统

vb电脑公司财务管理系统

delphi客户管理系统

net图书馆管理信息系统

java超市商品管理系统

pb在线考试

java原创库存管理系统可执行程序

c语言文件系统设计

基于webservice的数据库同步系统

vb点虐 考勤管理系统vb点虐

vb简单几何图形的识别和编辑系统

net某公司员工管理系统

vf酒店客房管理系统

vf商场管理系统

vb点虐 开发在windows下的串口异步通信程序

asp一个小型搜索引擎

j2ee高速公路票据管理系统

vb小区物业管理系统

php酒店房间预约系统设计

asp《信息论与编码》在线考试系统

vf宿舍管理系统

android基于局域网的文件传输系统

asp学生网上选课系统

php校园学生信息在线管理系统

asp基于web的商场管理系统

net基于web的订餐系统

jsp仓储管理系统

简易网络存储系统

javaftp客户端

jsp公交查询系统

java人才管理系统

net企业投资价值分析系统

asp基于bbs的bbs系统设计(structmy)好

android通用图书馆管理系统

asp网上选课系统

最新asp网上论坛

vc网络爬虫程序

net考勤系统(net)

net交通信息网上查询系统

美食网站

pb企业物料需求计划管理系统

delphi公交车查询系统delphi源

asp点虐 网络招聘系统

asp视频点播系统

vf学生学籍管理

android毕业管理系统

简易网络存储系统

vb点虐 一种基于cc模式的网上购物系统

asp点虐 网络文件管理系统

asp点虐 学生信息管理系统

j2ee城市公交查询系统

j2ee人机接口设备—示波器的仿真实现

jsp网络商城

net基于bs的图书销售管理系统

net基于net的公司网站

j2ee汽车零件销售管理系统

vf图片文件中的信息隐藏和还原的设计

vf医药管理系统

net技术的猎头公司管理软件——内部事务部分

最新net高校学生宿舍管理系统

vb局域网抓包软件

asp点虐 企业物流平台

asp点虐 学生排课管理系统

vb点虐 网络数据包捕获工具

android企业考勤

c#在线考试

j2eealendar的跨平台系统的设计

vf书店辅助进书系统

asp仓库即时查询系统

asp作业提交与批改系统

vb开发在windows下的串口异步通信程序

javaac自动组卷系统

asp网上体育用品商店

jsp华夏文化交流平台

delphi采购管理

php校园新闻发布管理系统

vb点虐 成绩管理系统vb点虐

delphi五子棋游戏(网络版)的设计与开发

最新net网上图书订阅系统的设计

vb教学辅助系统vb

android试题库自动组卷系统

vc试题库自动组卷系统(vc)cym

asp点虐 基于bs的家教交流平台的实现

vf学生成绩管理系统vf

asp点虐 楼宇专业网站毕业设计

net多语种网络硬盘系统的设计

vf考试系统vf

端口信息工具

vf物业管理

net公交车管理系统的实现与设计

pb基于半打开的端口扫描技术及其实现

j2ee水费管理系统

vf用遗传算法解决车辆优化调度问题任务书

jsp办公自动化管理系统

jsp基于android的在线购物系统

asp点虐 车辆调度管理系统

pb线程插入木马

delphi基于delphi的串口通信服务的开发

asp药店管理系统

jsp实验室设备管理系统

kasumi算法的研究与j2ee实现

net基于点虐 的城市公交查询系统

jsp基于web的subversion用户管理系统phb

delphivbd租赁管理系统

linux下的网络层加密解密的实现

android药品公司进销售存管理系统

asp服装销售系统

j2ee电信人事管理系统设计

jsp员工信息管理系统

android考勤管理系统android

vf基于点虐 的网上购物系统

vb点虐 财务管理系统

vc题库管理系统

delphi基于webcam的人脸检测技术

php在线学习系统

最新php团员管理

vb原创图书管理系统)毕业设计

net某企业信息管理系统

asvbtoc电子商务网站

vf火车站售票管理系统

asp科研信息管理系统

net某企业信息管理系统

vb基于usbkey的文件加密工具—-客户端的实现

net基于点虐 企业订单管理系统的开发

net房地产评估系统

net作业在线提交系统

vc多线程与线程安全实践-基于http协议的断点续传

vf地税局工资管理系统

delphi科研管理系统

delphi烟花爆竹经销管理系统

面向internet上的cscw的共享白板

php网络招聘系统

php网上求职与招聘系统

vb点虐 机房监控系统

asp点虐 考试报名信息处理系统

j2ee医院病房管理系统

基于进程和通信隐藏的木马设计与实现

net息加密与隐藏工具

c#汽车销售系统

jsp原创教师信息管理系统

android简易web服务器研究

asp科研项目网上申报管理系统

asp基于asp的论坛

php计算机组成原理教学网站

android超市销售系统

c#网络流量监控及分析工具

delphi电子邮件客户端软件

android排课系统程序

jsp网上拍卖平台系统)

j2ee某百货店pos积分管理系统-积分添加和通票回收

j2ee教务管理系统j2ee

vf银行代扣代发工资系统

php学生学籍管理系统

基于webservice的异构数据库检索系统的设计

android长途汽车信息管理系统

net系办办公自动化系统

c#网络计时管理系统

net网络商店销售管理系统

原创net高校学生宿舍管理系统

asp网络教学评判系统

net客户关系管理系统的实现

c语言遗传算法在求解tsp问题毕业

asp点虐 网上教学资源共享系统

基于icmp模拟网络控制软件的开发——控制管理模块

vb车间调度系统

net动态口令认证的网上选课系统

asp点虐 图书馆管理系统

asp企业公告及资料发布系统

pb原创图书管理系统)毕业设计

vf基于cs结构的企业人事管理系统

网络嗅探器

jsp网上书店售书系统

asp点虐 网上选课系统

asp酒店客房管理系统

asp点虐 自动排课系统

net信息安全研究所设备管理系统

最新net基于bs的图书销售管理系统

java药品销售系统

java简单小游戏设计

jsp基于web的旅游网站建设

android库存管理

php淘宝店主交易管理系统

net频点播系统

pb大型机房学生上机管理系统

jsp基于bs结构的工厂设备管理系统的设计与开发

web的入侵防御系统

最新php基于bbs的bbs系统设计(structmy)好

asp教师信息管理系统

net课件发布系统

j2ee在线英语自学系统——课程及自测管理的设计

asp网上二手商品交易管理系统

原创asp点虐 购物系统

pb小说租阅管理系统

人机接口设备—开关类部件的仿真实现

net校园新闻发布系统

php基于linux的远程管理系统客户端的实现

php在线exam

delphi物质管理系统

vb点虐 电信人事管理系统设计

android试题库自动组卷系统(android)cym

j2ee学生档案管理

net基于点虐 的内部邮件系统实现

asp点虐 学科建设

asp某公司进销存信息管理系统

java企业投资价值分析系统

java大随机数生成器算法的研究与实现

jsp某高校工资管理系统

vb在线英语自学系统——课程及自测管理的设计

net某店pos积分管理系统-清除履历表、日志表、月购买额

asp会员管理系统

原创美食网站

vs家庭理财系统

局域网监听系统

vc房屋租凭管理系统

jsp在线二手交易系统

vb点虐 模拟器件测试平台的设计与开发

原创net考勤系统(net)

java酒店管理信息系统

原创网络求职招聘系统

vf高校教务排课系统

c#rsa密码体制的实现

端口扫描与检测技术的实现

delphi猜数游戏的设计与开发

php宿舍管理系统设计

j2eeac自动组卷系统

原创php网络购物

android物质管理系统

php实验室设备管理系统

asp求职招聘网站设计

androidsc结构服装专卖店

net电子购物商城系统

java自动排课系统

java职员信息管理系统

vb书店辅助进书系统

android教师管理系统

jsp基于bs模式的中小企业人事管理系统

vc物质管理系统

最新简易网络存储系统

android并行接口器件功能演示的可视化设计学位

原创基于des加密算法的word加密插件的实现

net频点播系统

asp点虐 网络旅游信息系统

原创asp计算机组成原理教学网站

jsp车辆调度管理系统

asp点虐 基于bs的工艺品展示系统

基于纠错码的容错技术的研究——x码

asp电子商务系统

pb原创库存管理系统可执行程序

c#企业往来账务管理系统

vc超市售货管理系统

原创net网上图书订阅系统的设计

android人事管理系统

原创php在线学习系统

vf桌面日历系统

java商业汇票(支票管理)

asp聊天室

java计科教务管理系统

vb点虐 物业管理系统

asp公共课平时成绩查询系统asp

最新asp会员管理系统

vc书店管理系统

win平台下的pe文件病毒的研究及实现

j2ee电子邮件客户端软件

asp点虐 基于asp点虐 的学生信息管理系统

vf企业人事工资管理系统

vbrsa密码体制的实现

java基于bs方式的即时通讯软件

vf煤气站管理系统dpac

pb多媒体教学控制系统-网络通讯平台的设计

delphi酒店管理系统

jsp基于bs结构的工厂设备管理系统的设计与开发

jsp企业人力资源管理系统的设计

java课程设计医药管理系统(java)应要求源文件代码打包上传

j2ee实验室仪器管理系统

pb网吧管理系统

pb车队综合业务管理系统

最新php网络商城

c#大随机数生成器算法的研究与实现

asp基于bs结构的二手交易系统

javad的网络三维技术

最新net考勤系统(net)

jsp基于web的信息处理系统

net小型门户网自助建站系统

社区论坛

asp公交查询系统

java文档资料管理系统

php红旗汽车修理厂物资流通管理系统

校园网络工程综合布线方案

vc高校缴费系统

php格式化系统——前台

原创asp网上选课系统

最新asp校园学生信息在线管理系统

android基于特征的入侵检测系统

vb人事管理系统

vb点虐 图书管理系统

java简易web服务器研究

jsp基于jsp学生成绩管理系统软件的开发

net模块化动态电子商务网站的开发

delphi中大迅通合同统计系统

linux下的简单网络管理控制系统的设计与开发

vf航空售票模拟系统

vb通用销售管理系统

c#教学信息管理系统毕业

vc企业投资价值分析系统

j2ee基于bs方式的即时通讯软件

asp点虐 科研信息管理系统

vb点虐 软件项目开发管理系统vb点虐

android可视化图像处理系统

c#高校题库管理系统附原代码程序万字

net基于点虐 电子相册的开发

pb商品配送中心库存仿真软件设计

android成本费用计算系统

asp点虐 旅游信息管理系统

j2ee宿舍管理系统

vb点虐 气象信息服务系统

net基于tcp协议的简单即时通信软件

原创vb职员信息管理系统

php小型企业网上订单系统

android人事管理

vb点虐 汽车销售系统

最新美食网站

最新简化的cpu逻辑功能的仿真实现

vb光盘信息管理系统

深水蓝文学网站

vb列车时刻查询决策系统

vc毕业管理系统

android商品交易系统

delphi列车时刻查询决策系统课程设计

java图书管理系统带

java基于jee的公交查询系统

net《数据库原理及应用技术》课程指导平台的开发

原创net某企业信息管理系统

delphi局域网的语音通信

vc家庭财务管理系统

android人脸识别系统设计.

php软件信息发布系统

社区论坛

net网上办公系统——公文流程管理设计与实现

原创delphi学生档案管理

delphi干部档案管理系统

asp基于bs的人才交流网站

asp点虐 酒店房间预约系统

java网络流量监控及分析工具

asp在线教学质量评价系统

php网络购物

快速加密解密芯片中kasumi算法的实现

asp点虐 网络购物系统

最新php科研项目网上申报管理系统

j2ee打字系统

基于ajaxlucene构建搜索引擎的设计和实现

pb超市配送运输管理系统

vf医疗纠纷检索系统

pb图书管理系统(毕业程序翻译%通过)

原创美食网站

vb网络在线考试系统原码

vb点虐 邮件收发系统的设计

jsp科研处管理信息系统

vcaccti电话语音应答系统

vc用遗传算法解决车辆优化调度问题任务书

delphi多媒体教学控制系统-网络通讯平台的设计

vc试卷生成系统

java气象信息服务系统

asp局域网文件共享及检索系统的设计与开发

php音乐网站

c内存映射文件在进程共享中的应用研究

php基于web的办公自动化管理系统可执行

php基于网络环境的库存管理系统

jsp在线直销商城

vb排课管理系统

最新简易网络存储系统

jsp基于jsp的网上考试系统_

第二代木马的研究与实现

vb点虐 jpeg编码优化

java基于java的五子棋游戏软件的设计与开发

java绩效评价系统

vc仓库管理系统

j2ee图书馆书库管理系统

php学生成绩查询

java基于windows入侵检测系统的研究与设计——检测模块设计

android象棋程序

vf网吧计费系统

c#smart系统-考试监控及阅卷模块的设计与开发

android某医疗部门总务信息管理系统

vb点虐 图书馆全开架借阅管理系统

vf电子通讯录(带系统托盘)

android指纹识别系统

android设备保养管理系统

android基于局域网的信息收发系统

android办公用品管理系统

pb企业考勤管理系统

pb药品公司进销售存管理系统

c#光盘管理系统

php服装销售系统

原创asp点虐 网上选课系统

net仪器设备管理系统设计与实现

j2ee基于特征的入侵检测系统

最新net基于net的公司网站

vb教学设备管理系统

net(java)办公自动化管理系统

c#企业人事管理系统

asp点虐 校友录server

android邮政编码系统

最新asjavatoc电子商务网站

原创基于icmp模拟网络控制软件的开发——控制管理模块

asp计算机组成原理教学网站

j2ee考试分析评价系统

net基于bs的计算机等级考试系统

端口扫描与检测技术的实现

vb点虐 题库管理系统

原创php基于php的论坛

文学网站

php网上体育用品商店

asp网上书店

php博客网站

php施甸县旅游咨询网

原创net客户关系管理系统的实现

vf木马检测工具的实现

vb社区人口资源管理系统设计与实现

vbd的网络三维技术

基于net教学辅助系统设计与实现

c局域网即时聊天程序

delphi象棋程序

jsp基于网络超市商品销售管理系统

c#计算机机房管理系统

asp网络教学平台

asp图书馆管理系统

pbsmart系统-公共资源模块的设计与开发--代码

asp助学贷款管理系统

j2ee学生档案管理系统

php网上购物系统答辩

net门诊就诊系统

php某小型数字图书馆

asp点虐 网上家电销售管理系统

asp点虐 网上商城系统

net中小企业oa系统

vb点虐 房屋销售管理信息系统

最新面向internet上的cscw的共享白板

php同学录系统

iptables图形管理工具

asjavatoc电子商务网站

vc考试系统vc

最新asvftoc电子商务网站

实验室计算机的ip地址自动设置程序——客户端

asp点虐 网络教学评判系统

asp点虐 基于asp点虐 的笔记本销售网站

php药品销售数据管理系统

android自动出题题库系统

原创j2ee电脑公司财务管理系统

数据库连接池的研究与实现

jsp课程设计

java上机考试系统

原创基于net教学辅助系统设计与实现

php科研信息管理系统

eims系统-oa子系统的设计与开发

net基于点虐 的工资绩效管理系统的开发

pb基于工作流引擎的系统框架设计开发

asp点虐 网上日记本

c#员工管理系统

基于rsa的数字签名

php企业人力资源管理系统的设计

原创asp《信息论与编码》在线考试系统

j2ee扫雷游戏的设计与开发

jsp网上考试系统

vb学生管理系统

c#基于c#的飞行模拟游戏的设计及实现

php求职招聘网站设计

jsp科研处管理信息系统

net基于svg的自动站雨量分析系统

asp点虐 文章在线发布系统

vb流动资金贷款业务系统

net网络考试系统点虐

jsp聊天室

vb点虐 基于vb点虐 的两个通用安全模块

net小型证券术语解释及翻译系统的设计与开发

android电脑销售系统

j2ee自动点歌系统

net小型酒店管理系统的设计

vf办公自动化系统

java商业汇票(支票管理)

asp点虐 课程设计

pb银行设备管理

jsp企业网站设计

网络数据包的协议分析程序的设计开发

java网络多人聊天系统

android停车场管理系统

_基于点虐 的驾校理论考试模拟系统

jsp基于bs结构的工艺品销售系统的实现

asp点虐 格式化系统——前台

asp个人网站

c#兼职中介管理系统

jsp基于jsp的人事管理系统

最新基于des加密算法的word加密插件的实现

asp点虐 网络实验教学网站

asp网络招聘系统

vb点虐 煤气站管理系统dpac

asp仓储管理系统

android图书销售信息系统

asp点虐 cd销售管理系统

php学生信息管理系统

android图像处理工具

pb学生办证管理系统

j2ee党员管理系统

asp点虐 机房自由上机收费管理软件

vf网络计时管理系统

java基于java的五子棋游戏软件的设计与开发

c#中介管理系统

php酒店客房管理系统

c#图书馆管理系统

pb科研项目管理系统

jsp学生管理

jsp学生考试成绩分析(带饼状态图,柱状图)

asp课程设计

asp点虐 c语言试题生成与考试系统

vb点虐 教学信息管理系统

vb局域网的数据包监听及数据分析

vb高校题库管理系统附原代码程序万字

php视频点播系统

vb企业档案管理系统简单版

vb学生宿舍管理系统

net房地产管理系统

c#物业管理

vb音像店管理系统

javasmart系统-公共资源模块的设计与开发--代码

java基于ftp协议的文件访问系统

最新基于des加密算法的word加密插件的实现

vf绩效评价系统

asp操作系统课程教学网站

pb旅游资源及线路管理系统

vb点虐 计科教务管理系统

最新php客户关系管理系统

j2ee病房管理系统

php原创交友网设计

最新net频点播系统

php基于php学生成绩管理系统软件的开发

最新neterp系统(毕业设计

原创vc基于bs方式的即时通讯软件

基于lotus的故障报修系统

vf超市配送运输管理系统

vb点虐 试卷生成系统

原创文件压缩与解压缩实践

php教师档案管理系统

原创jsp《信息论与编码》在线考试系统

android网络数据包捕获工具

jsp药品销售数据管理系统

asp在线学习系统

j2ee考勤管理系统j2ee

asp网络商城

c局域网即时聊天程序

c#健身中心会员管理系统

vf客房管理信息系统

java基于采集

netxx职业中学图书管理系统的设计

基于caché的实验室资源管理系统的设计

最新基于net教学辅助系统设计与实现

vb点虐 学生管理系统

c内存映射文件在进程共享中的应用研究

vf中国象棋游戏

vbsmart系统-题库及试卷管理模块的设计与开发

win平台下的pe文件病毒的研究及实现

net基于手机短信平台聊天程序

jsp网上图书销售系统

原创web的入侵防御系统

vc干部档案管理系统

最新web的入侵防御系统

vf基于misty算法的加密软件的实现

vb点虐 数据结构辅助教学

php个人日志系统

asp点虐 论坛程序设计(万字功能强大)

asp网页设计辅导系统

最新net动态口令认证的网上选课系统

net基于点虐 电子相册的开发

j2ee学生信息管理系统万字

pb网上交易系统pb

vf超市进销存管理系统vf报稿

asp留言板

c#模拟atm机系统软件的设计与开发c#

asp交友录

pb车辆

vb点虐 中如何防止panel的滚动条自动回滚到初始位置

记录滚动条位置,回发时重新设位置。

//刷新时滚动条保留位置

$().ready(function(){

ScrollToSelectNode();

})说明:left为div,divscrollvalue是一个hidden

function ScrollToSelectNode() {

var y = document.getElementById("%=divScrollValue.ClientID %").value;

if (y == "")

y = 0;

document.getElementById("left").scrollTop = y;

}

点击执行:

function bindData() {

document.getElementById("%=divScrollValue.ClientID %").value = document.getElementById("left").scrollTop;

}

补充:input type="hidden" runat="server" id="divScrollValue" /这个是hiddenfild控件记录滚动条位置的。另外以上是js代码是写到前台的。如a onclick="bindData()"第一级/a

$().ready(function(){

ScrollToSelectNode();

})这一句是jquery,如果不用jquery就在body加上onload="scrolltoselectNode()"

如何在.NET中实现脚本引擎

NET本身提供了强大的脚本引擎,可以直接使用.NETCLR的任何编程语言作为脚本语言,如VB.NET、C#、JScript,J#等等。使用脚本引擎,我们可以动态生成任意表达式、或动态导入任意脚本文件,并在任意时候执行。经实践发现,我们可以使用至少两种不同的方式在.NET中使用脚本引擎:VsaEngine和CodeDom。其实,CodeDom不能算是真正的脚本引擎,它实际上是编译器。但是我们完全可以利用CodeDom来模拟脚本引擎。使用Emit方法也能达到动态生成可执行代码的目的,而且Emit生成的代码不需要编译,因此速度更快。但是Emit插入的实际上是汇编代码,不能算是脚本语言。本文介绍如何以CodeDom方式来动态生成可执行代码。如何在.NET中实现脚本引擎(CodeDom篇)沐枫网志1.构造一个编译器设置编译参数编译参数需要在CompilerParameters设置:CompilerOptions用于设置编译器命令行参数IncludeDebugInformation用于指示是否在内存在生成AssemblyGenerateInMemory用于指示是否在内存在生成AssemblyGenerateExecutable用于指示生成的Assembly类型是exe还是dllOutputAssembly用于指示生成的程序文件名(仅在GenerateInMemory为false的情况)ReferencedAssemblies用于添加引用Assembly例如:theParameters.ReferencedAssemblies.Add("System.dll");创建指定语言的编译器编译需要由指定语言的CodeDomProvider生成。这里列举一些.NET的CodeDomProvider:vb点虐 Microsoft.VisualBasic.VBCodeProviderC#Microsoft.CSharp.CSharpCodeProviderjscriptMicrosoft.JScript.JScriptCodeProviderJ#Microsoft.VJSharp.VJSharpCodeProvider以C#为例,要创建C#编译器,代码如下://.NET1.1/1.0ICodeCompilercompiler=newMicrosoft.CSharp.CSharpCodeProvider().CreateCompiler();//.NET2.0ICodeCompilercompiler=(ICodeCompiler)newMicrosoft.CSharp.CSharpCodeProvider();下面是完整的创建编译器的例子://////创建相应脚本语言的编译器///privatevoidcreateCompiler(stringstrLanguage,booldebugMode,stringstrAssemblyFileName){this.theParameters=newCompilerParameters();this.theParameters.OutputAssembly=System.IO.Path.Combine(System.IO.Path.GetTempPath(),strAssemblyFileName+".dll");this.theParameters.GenerateExecutable=false;this.theParameters.GenerateInMemory=true;if(debugMode){this.theParameters.IncludeDebugInformation=true;this.theParameters.CompilerOptions+="/define:TRACE=1/define:DEBUG=1";}else{this.theParameters.IncludeDebugInformation=false;this.theParameters.CompilerOptions+="/define:TRACE=1";}AddReference("System.dll");AddReference("System.Data.dll");AddReference("System.Xml.dll");strLanguage=strLanguage.ToLower();CodeDomProvidertheProvider;if("visualbasic"==strLanguage||"vb"==strLanguage){theProvider=newMicrosoft.VisualBasic.VBCodeProvider();if(debugMode)theParameters.CompilerOptions+="/debug:full/optimize-/optionexplicit+/optionstrict+/optioncompare:text/imports:Microsoft.VisualBasic,System,System.Collections,System.Diagnostics";elsetheParameters.CompilerOptions+="/optimize/optionexplicit+/optionstrict+/optioncompare:text/imports:Microsoft.VisualBasic,System,System.Collections,System.Diagnostics";AddReference("Microsoft.VisualBasic.dll");}elseif("jscript"==strLanguage||"js"==strLanguage){theProvider=newMicrosoft.JScript.JScriptCodeProvider();AddReference("Microsoft.JScript.dll");}elseif("csharp"==strLanguage||"cs"==strLanguage||"c#"==strLanguage){theProvider=newMicrosoft.CSharp.CSharpCodeProvider();if(!debugMode)theParameters.CompilerOptions+="/optimize";}//elseif("jsharp"==strLanguage||"vj"==strLanguage||"j#"==strLanguage)//{//theProvider=newMicrosoft.VJSharp.VJSharpCodeProvider();//if(!debugMode)//theParameters.CompilerOptions+="/optimize";//}elsethrownewSystem.Exception("指定的脚本语言不被支持。");this.theCompiler=theProvider.CreateCompiler();}//////添加引用对象。//////引用的文件名publicvoidAddReference(string__strAssemblyName){theParameters.ReferencedAssemblies.Add(__strAssemblyName);}注:在.NETFramework2.0中,由于CreateCompiler方法被标记作废。为避免产生编译警告,可直接返回CodeDomProvider作为编译器:this.theCompiler=(ICodeCompiler)theProvider;2.编译源代码编译源代码相当简单,只需一条语句就搞定了:CompilerResultscompilerResults=compiler.CompileAssemblyFromSource(this.theParameters,this.SourceText);执行后,可以从compilerResults取得以下内容:NativeCompilerReturnValue编译结果,用于检查是否成功Errors编译时产生的错误和警告信息CompiledAssembly如果编译成功,则返回编译生成的Assembly示例函数://////编译脚本。编译前将清空以前的编译信息。///CompilerInfo将包含编译时产生的错误信息。//////成功时返回True。不成功为False。publicboolCompile(){this.theCompilerInfo="";this.isCompiled=false;this.theCompiledAssembly=null;this.theCompilerResults=this.theCompiler.CompileAssemblyFromSource(this.theParameters,this.SourceText);if(this.theCompilerResults.NativeCompilerReturnValue==0){this.isCompiled=true;this.theCompiledAssembly=this.theCompilerResults.CompiledAssembly;}System.Text.StringBuildercompilerInfo=newSystem.Text.StringBuilder();foreach(CompilerErrorerrinthis.theCompilerResults.Errors){compilerInfo.Append(err.ToString());compilerInfo.Append("/r/n");}theCompilerInfo=compilerInfo.ToString();returnisCompiled;}3.执行代码使用Reflection机制就可以很方便的执行Assembly中的代码。我们假设编译时使用的脚本代码this.SourceText内容如下:namespacetest{publicclassscript{staticpublicvoidMain(){MessageBox.Show("Hello");}}}则相应的执行代码为:scriptEngine.Invoke("test.script","Main",null);Invoke函数内容://////执行指定的脚本函数(Method)。///如果指定的类或模块名,以及函数(Method)、或参数不正确,将会产生VsaException/VshException例外。//////类或模块名///要执行的函数(Method)名字///参数(数组)///返回执行的结果publicobjectInvoke(string__strModule,string__strMethod,object[]__Arguments){if(!this.IsCompiled||this.theCompiledAssembly==null)thrownewSystem.Exception("脚本还没有成功编译");Type__ModuleType=this.theCompiledAssembly.GetType(__strModule);if(null==__ModuleType)thrownewSystem.Exception(string.Format("指定的类或模块({0})未定义。",__strModule));MethodInfo__MethodInfo=__ModuleType.GetMethod(__strMethod);if(null==__MethodInfo)thrownewSystem.Exception(string.Format("指定的方法({0}::{1})未定义。",__strModule,__strMethod));try{return__MethodInfo.Invoke(null,__Arguments);}catch(TargetParameterCountException){thrownewSystem.Exception(string.Format("指定的方法({0}:{1})参数错误。",__strModule,__strMethod));}catch(System.Exceptione){System.Diagnostics.Trace.WriteLine(string.Format("执行({0}:{1})错误:{2}",__strModule,__strMethod,e.ToString()));returnnull;}}总结:CodeDom可以很方便的随时编译源代码,并动态执行。虽然作为脚本引擎,它没有VsaEngine正规和方便,但作为一般应用,也够用了。并且结合Reflection机制,它的功能比VsaEngine更强大:它可以编译任何提供CompilerProvider的CLR语言(目前.NET自带的语言中都有)。当然,它也有一些缺点:它生成的Assembly不能动态卸载。这在一般情况下不成问题,因为一个源代码只需编译一次,并载入执行,并不需要动态卸载。假如你需要做脚本编辑器时,就要考虑这个问题,因为有可能一个脚本会因为修修改改而不停的重新编译,从而造成不停的产生新的Assembly,最后将导致内存被大量占用。要解决这个问题,需要将编译器加载到独立的AppDomain中,通过卸载AppDomain达到卸载所需的Assembly的目的。


分享文章:jstovb点虐 的简单介绍
新闻来源:http://lswzjz.com/article/ddcpedg.html