C# 通过C使用PlotKit(javascript)#

C# 通过C使用PlotKit(javascript)#,c#,javascript,C#,Javascript,我对Javascript比较陌生,虽然我知道如何使用它,但我并不真正理解它背后的机制。请容忍我 我需要编写一个小应用程序,根据作为XML文件接收的数据创建一个图表(SVG)。我发现,这正是我所需要的,只是它是用Javascript编写的,而我当前的程序是用c#编写的。我在谷歌上搜索了一下,找到了几篇文章,解释了如何使用.NET VsaEngine类计算简单的Javascript代码。不幸的是,我完全不知道如何使用VsaEngine来执行更复杂的Javascript,这需要引用其他文件。基本上,我

我对Javascript比较陌生,虽然我知道如何使用它,但我并不真正理解它背后的机制。请容忍我

我需要编写一个小应用程序,根据作为XML文件接收的数据创建一个图表(SVG)。我发现,这正是我所需要的,只是它是用Javascript编写的,而我当前的程序是用c#编写的。我在谷歌上搜索了一下,找到了几篇文章,解释了如何使用.NET VsaEngine类计算简单的Javascript代码。不幸的是,我完全不知道如何使用VsaEngine来执行更复杂的Javascript,这需要引用其他文件。基本上,我只想让c#能够将这样的东西称为Javascript:

var layout = new PlotKit.Layout("bar", {});
layout.addDataset("data", [[0, 0], [1, 1], [2, 2]]);
layout.evaluate();
var canvas = MochiKit.DOM.getElement("graph");
var plotter = new PlotKit.SVGRenderer(canvas, layout, {});
var svg = SVGRenderer.SVG();
并获取图表的SVG字符串。我不知道如何使上面的脚本知道在哪里查找所有必需的对象。如果我要制作一个网页来实现这一点,我只需添加一些引用/plotkit/Layout.js、/plotkit/Canvas.js等的脚本头,Javascript就可以正常工作

如果有人能准确地解释我将如何通过C#使用PlotKit,或者能解释一种更有效的方法,我将非常感激


编辑:我意识到我对这个问题不是很清楚——我需要我的c#程序模拟Javascript引擎并使用PlotKit库,而不需要实际运行web浏览器。有什么方法可以做到这一点吗?

PlotKit是一个JavaScript库,用于在客户端的Web浏览器中执行。C#在服务器上执行。要在两者之间进行通信,您需要呈现希望传递到服务器上PlotKit的任何数据,然后将其以发送到客户端的HTML格式输出

因此,在您的C#代码中,您将构造JSON对象,该对象将传递给PlotKit的addDataset方法

...
    public partial class Default : System.Web.UI.Page
    {
        protected string PlotKitData = "[]";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack) PlotKitData = GenerateJSON();
...
然后在你的ASPX代码中你会有这样的东西

<script>
    var layout = new PlotKit.Layout("bar", {});
    layout.addDataset("data", <%=PlotKitData%>);
    layout.evaluate();
    var canvas = MochiKit.DOM.getElement("graph");
    var plotter = new PlotKit.SVGRenderer(canvas, layout, {});
    var svg = SVGRenderer.SVG();
</script>

var layout=新的PlotKit.layout(“条“,{});
layout.addDataset(“数据”);
layout.evaluate();
var canvas=MochiKit.DOM.getElement(“图形”);
var plotter=new PlotKit.svgrender(画布,布局,{});
var svg=svgrender.svg();

也许可以满足您的需要?

您所需要的只是生成的SVG字符串?您不需要绘制它?可能您将遇到的最大问题是PlotKit(以及PlotKit所依赖的MochiKit)需要一个浏览器环境。也许我的问题不太清楚-我需要我的c#程序模拟Javascript引擎并使用PlotKit库,而不实际运行web浏览器。有什么方法可以做到这一点吗?PlotKit打算在浏览器客户端运行,需要MochiKit framework.ZedGraph,除非我遗漏了什么,否则无法将图表保存为SVG文件,这对我来说至关重要。我发现了一个免费的Java库,可以,但我仍然很好奇是否存在一个解决方案/