c# - 在 C# 中使用 ActiveX

标签 c# activexobject

我有一个这样的javascript代码:

  o = new ActiveXObject("ASDFsome.Application");
  utilites = WScript.CreateObject("ASDF.Utilites.UTF.Converter")
  utilites.Convert(outFile, xmlProp.xml)

现在我想用 C# 代码重写它。在 Net 中应该如何使用 ActiveXObject?

最佳答案

这在很大程度上是 dynamic 关键字被添加到 C# 版本 4 的原因:

dynamic utilites = Activator.CreateInstance(Type.GetTypeFromProgID("ASDF.Utilites.UTF.Converter"));
utilites.Convert(outFile, xmlProp.xml);

如果您坚持使用早期版本,那么使用 VB.NET 类库是最好的方法。它直接支持脚本代码中使用的 CreateObject() 函数。

最后但同样重要的是,与您一直使用的脚本语言不同,C# 和 VB.NET 都支持早期绑定(bind)。首先添加对类型库的引用,项目 + 添加引用,然后使用 COM 选项卡或浏览选项卡选择包含类型库的 .tlb 或 .dll 文件。如果该组件被设计为仅在后期绑定(bind)脚本语言中使用,您可能没有。我们无法以其他方式帮助您找到合适的类型库,供应商或作者应该知道。

最后但并非最不重要的一点是,这听起来像是一个知道如何读取 utf-8 编码的 XML 文件的实用程序。 .NET 中的 System.Xml 命名空间已经很好地支持了这一点。

关于c# - 在 C# 中使用 ActiveX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12838219/

相关文章:

c# - 领域驱动设计 : How to Retrieve Lists of Complex Data

c# - 测试 I/O 完成端口支持

c++ - 如何获取嵌入式IE ActiveX控件的版本?

javascript - 使用 ActiveXOjbect 和 javascript 保存 Excel 工作表

C# - 编写 COM 服务器 - 映射到方法的属性

c# - 如何制作批处理脚本以使用凭据在远程计算机上运行命令

c# - 在 C# 中获取(最后一部分)当前目录名称

javascript - 使用 JavaScript 在 HTA 中发送电子邮件并隐藏发件人的电子邮件地址

javascript - ActiveX 在 IE 11 中不工作

javascript - IE8/9 中的表单数据