当前位置:  开发笔记 > 编程语言 > 正文

如何从vbScript调用.NET代码(C#/ vb.net)?

如何解决《如何从vbScript调用.NET代码(C#/vb.net)?》经验,为你挑选了2个好方法。

我想我可以编译一个C#DLL,然后将它作为COM对象公开,以便它可以从VBscript创建.我只是不确定这样做的步骤......



1> Robert Rossn..:

这样做非常简单.但是有很多地方并不那么简单.这很大程度上取决于您的课程需要做什么,以及您打算如何部署它.

需要考虑的一些问题:

你的类必须有一个无参数的构造函数.

它不能暴露静态方法.

是否在全局程序集缓存中部署COM DLL?如果没有,您将不得不给它一个强名称并使用它进行注册regasm /codebase.

您是否关心GUID识别类及其接口?如果没有,你可以让regasm它们分配,但每次(和每个地方)这些课程都会被注册.如果您需要GUID在安装期间保持不变,则需要使用该Guid属性标记成员.

您打算在.NET和COM之间使用默认的数据类型封送吗?如果没有,您将需要使用该MarshalAs属性标记属性和方法.

你的班级暴露什么样的COM接口对你有用吗?如果是这样,您将需要处理该InterfaceType属性.

您的班级是否需要提出或回应事件?如果是这样,那么对您设计类接口的方式有影响.

有一个关于COM互操作和.Net一个很好的(如果日)的文章在这里.(文章讨论的很多内容,比如生成类型库,现在都会自动处理.)而且Microsoft的文档是最新的,但不是那么详细.



2> Mehrdad Afsh..:

您应该使用该regasm实用程序来注册程序集(就像regsvr32使用COM服务器一样).然后你可以在COM中使用它.确保它已安装在GAC中.这些东西应该[ComVisible(true)]可以从COM使用.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有