VB CreateObject转C#
C#调用方法、函数获取属性大致流程如下:
System.Type oType = System.Type.GetTypeFromProgID("SomeClass");
object o = System.Activator.CreateInstance(oType);
oType.InvokeMember("SomeMethod", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { arg1, arg2 });
w = oType.InvokeMember("SomeFunction", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { arg1, arg2 });
w = oType.InvokeMember("SomeGet", System.Reflection.BindingFlags.GetProperty, null, o, null);
oType.InvokeMember("SomeSet", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { w });
示例:VB.NET 获取计划任务列表
Dim service = CreateObject("Schedule.Service")
Call service.Connect()
' Get the task folder that contains the tasks.
Dim rootFolder
rootFolder = service.GetFolder("\")
Dim taskCollection
taskCollection = rootFolder.GetTasks()
Dim numberOfTasks
numberOfTasks = taskCollection.Count
If numberOfTasks = Then
Debug.Print("No tasks are registered.")
Else
Debug.Print("Number of tasks registered: " & numberOfTasks)
Dim registeredTask
For Each registeredTask In taskCollection
Debug.Print("Task Name: " & registeredTask.Name)
Dim taskState
Select Case registeredTask.State
Case ""
taskState = "Unknown"
Case ""
taskState = "Disabled"
Case ""
taskState = "Queued"
Case ""
taskState = "Ready"
Case ""
taskState = "Running"
Case Else
taskState = "Unknown"
End Select
Debug.Print(" Task State: " & taskState)
Next
End If
翻译为C#:
var typeofScheduleService = System.Type.GetTypeFromProgID("Schedule.Service");
var service = System.Activator.CreateInstance(typeofScheduleService);
typeofScheduleService.InvokeMember("Connect", System.Reflection.BindingFlags.InvokeMethod, null, service, new object[] { });
var rootFolder = typeofScheduleService.InvokeMember("GetFolder", System.Reflection.BindingFlags.InvokeMethod, null, service, new object[] { @"\" });
var taskCollection = typeofScheduleService.InvokeMember("GetTasks", System.Reflection.BindingFlags.InvokeMethod, null, rootFolder, new object[] { });
var numberOfTasks = int.Parse(typeofScheduleService.InvokeMember("Count", System.Reflection.BindingFlags.GetProperty, null, taskCollection, new object[] { }).ToString());
foreach(var task in taskCollection as IEnumerable)
{
var taskName = typeofScheduleService.InvokeMember("Name", System.Reflection.BindingFlags.GetProperty, null, task, new object[] { }).ToString();
var taskState = int.Parse(typeofScheduleService.InvokeMember("State", System.Reflection.BindingFlags.GetProperty, null, task, new object[] { }).ToString());
//略去switch部分
}
VB CreateObject转C#的更多相关文章
- C#中实现VB中的CreateObject方法
经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等.虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但 ...
- 用VB脚本批到导入字段到PowerDesigner
在PowerDesigner使用脚本批量导入excel中记录的表结构信息,由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表,手动导入太耗时 ...
- 用VB实现SmartQQ机器人
这里为了便于介绍程序设计的流程,更多以代码形式给出,具体可用火狐浏览器的firebug插件来抓包分析,或者用谷歌浏览器的开发者工具进行抓包.抓包地址是:http://w.qq.com 第一步,是二维码 ...
- vb小菜一枚--------早期绑定和后期绑定
早期绑定和后期绑定 Visual Studio 2005 其他版本 将对象分配给对象变量时,Visual Basic 编译器会执行一个名为 binding 的进程.如果将对象分配给声明为特定对 ...
- vb.net向Excel中写入值
根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...
- 用VB操作Excel的方法
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便.因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报 ...
- VB版本查询快递单号源码
能查询各大快递单号,包括申通快递,圆通快递,韵达快递等国内超过90家以上快递单号查询, 如果想快速搭建一个快递单号查询站我推荐这个,这是地址www.aikuaidi.cn,我分享一个VB Functi ...
- ASP 调用dll(VB)及封装dll实例
ASP调用dll及封装dll实例,封装为dll可以提供运行效率,加密代码. 打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Ob ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
随机推荐
- IIS下注册COM组件(转)
以Excel为例 问题描述: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基 ...
- Spark源码学习1.8——ShuffleBlockManager.scala
shuffleBlockManager继承于Logging,参数为blockManager和shuffleManager.shuffle文件有三个特性:shuffleId,整个shuffle stag ...
- ubuntu 解决中文zip乱码问题
用到的工具是The Unarchiver项目提供的lsar/unar工具.The Unarchiver项目主页:http://code.google.com/p/theunarchiver/ 安装(1 ...
- servlet(1)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- understand equal and gethashcode
Supposed we have a class below public class TestHash { public int x; int y; public TestHash(int x, i ...
- C#联机获取公网IP
C#获取IP的方式有很多种,这里通过http://www.ipip.net/这个稳定的在线IP库的来获取公网IP. string tempip = "0.0.0.0"; WebRe ...
- css总结(更新中...)
下面总结的都是我实际使用后有效的. 1.select的默认样式不好看,怎么去掉默认样式呢,如下: .select{text-indent: inherit !important; background ...
- js 自运行函数作用
var obj = new Object(); function test2() { for (var i=1;i<5;i++) { obj['f'+i] = function() { retu ...
- [BZOJ 2038]小Z的袜子
传送门:BZOJ 2038 题意很明确,是在给定的区间内任意选取两个数,求选到两个相同的数的概率. 所以我们得首先统计在给定的区间内,相同的数对有多少对,那么这里就使用到了莫队算法.如果对莫队算法还不 ...
- android view:手势
一直认为android手势识别很是神奇,我们不分析复杂的手势,仅仅是针对上一次的基本事件的手势处理,分析GestureDetector的源码,来看一下到底手势事件是如何定义的. GestureDete ...