C#+ IE9 JS Engine Chakra?

我正在开发一个很酷的C#应用​​程序,它为我们的模型层使用了很多JS。 我们想使用IE9 Chakra Javascript引擎来提高速度。

问题:

  • 我可以在C#中使用Chakra,并与JS对象作为COM对象进行交互吗? (调用JS对象上的函数)
  • 我可以单独从IE9安装Chakra吗? (有些用户没有安装IE9,所以如果他们不必安装IE9就会更容易,但只需要Chakra)。

非常感谢您的专业知识。

[更新]根据Cheeso的回答,似乎你可以使用IE9的JS引擎[/ Update]。 但是我发现V8 JavaScript引擎(Chrome的JS引擎)提到你可以在你的C ++应用程序中使用V8引擎。 按照V8嵌入器的指南了解更多信息。 我没有找到任何参考,他们提到通过COM接口暴露V8function,所以你可能无法从C#中使用它。

回答Q#1

是的,您可以通过COM与C#中运行的Javascript逻辑进行交互。

特别是,从ac#program,你可以通过IActiveScript启动Chakra,加载一些Javascript / ES5代码,然后通过COM IDispatch指针调用该Javascript代码中定义的方法。

有关:

  • IE10 Chakra JScript引擎是否可以作为独立的C#访问?
  • 什么是IE9的Javascript引擎的ProgId或CLSID(代号为“Chakra”)

回答Q#2

据我所知,不,你不能安装Chakra而不安装IE9。 但是,对于没有Chakra的计算机,您可以设计您的C#应用​​程序以优雅地降级以使用现有的JScript引擎。