You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Renderer.GetJsonOptionsForBlazor()抛出重复键ArgumentException异常原因排查

异常原因及解决方案

异常根源

这个System.ArgumentException(提示键重复)的核心原因是Highstock的.NET封装库在序列化ChartOptions到JSON时,处理PlotOptions的逻辑存在属性重复冲突:

  • 你同时配置了PlotOptions.Series和PlotOptions.Line节点,而PlotOptionsLine是PlotOptionsSeries的子类,两者包含大量重叠的通用属性(比如draggableY、color)。
  • 当GetJsonOptionsForBlazor()方法序列化时,会遍历这两个节点的所有属性并合并到同一个字典中,相同键的属性被重复添加,直接触发"键已存在"的异常。

临时修复方案

方案1:合并配置到子类节点

因为PlotOptionsLine继承了PlotOptionsSeries的所有属性,所以可以把Series中的配置直接移到Line节点里,删除Series节点:

PlotOptions = new PlotOptions
{
    Line = new PlotOptionsLine
    {
        TurboThreshold = 10000, // 原Series中的配置移至此处
        Marker = new PlotOptionsLineMarker
        {
            Radius = 2
        },
        LineWidth = 1,
        States = new PlotOptionsLineStates
        {
            Hover = new PlotOptionsLineStatesHover
            {
                LineWidth = 2
            }
        },
        Threshold = null
    }
},

方案2:仅保留通用Series配置

如果需要给所有系列统一设置通用属性,只保留PlotOptions.Series节点,删除Line节点的重复配置,让Line系列自动继承Series的通用配置。

内容的提问来源于stack exchange,提问作者Anders Lindén

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:43:16