【问题标题】:Generate Javascript intellisense file for a .NET Class为 .NET 类生成 Javascript 智能感知文件
【发布时间】:2011-07-31 17:27:25
【问题描述】:

我有一个 .net 控件,旨在用作网页中的 ActiveX 控件,实例化如下:

<object id="TheControl" name="TheControl" classid="clsid:012937D0-E1D8-4a80-A17F-DEADBEEFF00D"></object>

有没有办法将 Visual Studio 为 TheControl 生成的 XML 文档转换为 .js 文件,然后 Visual Studio 可以使用该文件为页面中的控件实例提供智能感知?

【问题讨论】:

  • 我可以推荐一下 ActiveX 控件。我可以看到在遗留项目中不升级它们的用途,但如果您使用 VS2010,它不是遗留项目。最好不要创建新 ActiveX 控件,这样我们就可以推进网络标准。很可能存在 HTML5 等价物。
  • @Raynos,你可以推荐所有你想要的,但除非 HTML5 允许我打开一个套接字连接回到我们的一个服务器,从而触发各种电话操作,通过一个 定义明确的 API通过控制,你会倒霉的! =) 诸如“最好不要创建新的 ActiveX 控件,这样我们就可以按照 Web 标准向前发展。”这样的笼统陈述很少考虑到现实 ;-)(例如,您将如何编写在线病毒使用 HTML5 的扫描仪?)
  • @Rob 如果套接字是指 TCP 套接字,您可以查看 socket.io,尽管这并不能很好地集成到 .NET 后端。在理想的世界中,我们不必在网站中制作这类应用程序,而是通过桌面应用程序或可能像 Flash 或 Silverlight 之类的东西(仅)比 ActiveX 稍微标准一些。在绝对必要之前,我宁愿不考虑“现实”。但是如果我们停止编写 ActiveX 控件,IE6 可能会死掉,我们的生活会变得更好!实际上,ActiveX 可能是您的最佳选择。
  • @Raynos - “但是如果我们停止编写 ActiveX 控件,IE6 可能会死”,真的有必要将两个完全不相关的东西混为一谈吗? ActiveX != IE6。也就是说,这个 cmets 线程并没有让我更接近答案,所以我现在就停下来:)
  • @Rob 实际上在主题上可能有一个良好且有据可查的 WebSocket 抽象,适用于 .NET,支持 IE8+。

标签: javascript visual-studio-2010 intellisense javascript-intellisense


【解决方案1】:

您要么必须使用 .NET Reflection 来获取所有属性和方法的列表,要么编写 XML 解析器工具来获取相同的列表,然后从中生成 .JS 源代码。

我认为这两种方法都需要花费相同的精力来编写,但反射方法也可以仅用于 ActiveX 文件 - 如果您没有方便的 Visual Studio 来生成文档 XML。

如果你想要的只是属性和方法的“空壳”.JS 文件,那么本文中的代码应该提供了一个很好的基础:

http://www.codeproject.com/KB/dotnet/Reflection.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2017-10-26
    • 2016-03-20
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多