设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: faunus
打印 上一主题 下一主题

【练习】如何获得一个COM对像的真实类型

[复制链接]
6#
 楼主| 发表于 2014-2-24 20:19:49 | 只看该作者
cc1027cc 发表于 2014-2-24 17:38
错误        9        命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“Information”。是否缺少程序集引 ...

需要对程序集进行引用:Microsoft.VisualBasic


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

5#
发表于 2014-2-24 17:56:53 | 只看该作者
火钳刘明

评分

参与人数 1V币 +1 收起 理由
faunus + 1 (V币)代码练习跟贴(1分)

查看全部评分

回复

使用道具 举报

4#
发表于 2014-2-24 17:38:49 | 只看该作者
错误        9        命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“Information”。是否缺少程序集引用?        E:\vs10.0\ExcelAddIn1\ExcelAddIn1\ThisAddIn.cs        35        50        ExcelAddIn1


要引用哪个程序集

评分

参与人数 1V币 +1 收起 理由
faunus + 1 (V币)代码练习跟贴(1分)

查看全部评分

点击这里给我发消息

3#
发表于 2014-2-24 17:31:56 | 只看该作者
我要多来学习学习,以后不会遇到问题时束手无策

评分

参与人数 1V币 +1 收起 理由
faunus + 1 (V币)代码练习跟贴(1分)

查看全部评分

回复 支持 1 反对 0

使用道具 举报

2#
 楼主| 发表于 2014-2-24 17:23:02 | 只看该作者
结果:




可以看到:
通过 GetType() 方法,
仅仅只能获得一个通用的COM类型说明: System._ComObject。
这个显然不是我们想要的,由于C#3.0开始提供动态类型,类型在编译期并不能够确定。
为此我们要想采用新的方法。
Microsoft.VisualBasic.Information.TypeName(rA1);
这明返回的类型说明正是我们需要的 Range 。


这时 vb.net 比 c# 在这个地方在略胜一筹了
如果是 VB.net 无需额外的引用,
而在 C# 中必须额外多一步操作,引用 Microsoft.VisualBasic 类型库。


其实对一些有代码洁癖的人来说,一定还是不够爽,
请不要着急,我会在接下来的 高级课程中 为大家提供一个纯 C#的解决方法,
不过要有心理准备哦,方法挺高级的,请先过了 初级班、中级班吧!






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-30 20:43 , Processed in 0.114986 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表