Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在非Javascript项目中使用Javascript API?_C#_Javascript - Fatal编程技术网

C# 如何在非Javascript项目中使用Javascript API?

C# 如何在非Javascript项目中使用Javascript API?,c#,javascript,C#,Javascript,我正在做一个C#项目,需要一些地图任务 我正在做的是用C#编写一个html文件,并用类似webview的组件显示它 这很尴尬 有人想出了一个更合理的方法?这可能是一个普遍的问题,因为Javascript API太多了。为了解释和执行Javascript代码,您需要在C程序中运行Javascript引擎。这是可以做到的,尽管它很少没有问题,因为很多Javascript代码假定存在浏览器(例如,调用window.location或添加DOM元素的方法) 对于您的特定情况,这肯定会比它所值的麻烦更多,

我正在做一个C#项目,需要一些地图任务

我正在做的是用C#编写一个html文件,并用类似webview的组件显示它

这很尴尬


有人想出了一个更合理的方法?这可能是一个普遍的问题,因为Javascript API太多了。

为了解释和执行Javascript代码,您需要在C程序中运行Javascript引擎。这是可以做到的,尽管它很少没有问题,因为很多Javascript代码假定存在浏览器(例如,调用
window.location
或添加DOM元素的方法)

对于您的特定情况,这肯定会比它所值的麻烦更多,而且比仅仅用C#编写算法效率要低几个数量级。您应该寻找一个简化HTML创建的C#库,而不是试图嵌入一种解释性的弱类型语言


(但是,对于Javascript中有重要业务逻辑且需要在性能不敏感的批处理过程中复制此逻辑的其他情况,或者如果您希望在JS代码上与C#/Java类一起运行自动测试,则这是一种有效的方法。)一种简单的方法是运行node js服务器,只需通过本地端口进行通信。我相信您在使用c#通过http进行对话时不会遇到任何问题,而且毫无疑问,与您现在的方式相比,它将更加干净


此外,您还可以将v8引擎直接包含到当前项目中。它只是一个用C语言编写的javascript解释器,按照您通常的库头处理方式构建(我不能说这有多难,因为我没有C#方面的经验)。

您需要显示地图还是只是查找一些信息?