我有一个这样的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/