я столкнулся с проблемой, когда десериализации любого значения с Json.NET (даже фиктивными ценностями), кажется, запутались даты вдоль оси х моего контроля MSChart , это график, который, как предполагается, имеет значение даты по оси х:JSON.NET мешая MSChart даты
=== плохо ===
график производятся следующим минимальным код:
using System.Windows.Forms.DataVisualization.Charting;
using System.Threading;
using Newtonsoft.Json;
public partial class Form1 : Form
{
Thread thread;
public Form1()
{
InitializeComponent();
chart1.Dock = DockStyle.Fill;
thread = new Thread(Plot);
thread.Start();
}
void Plot()
{
// prepare chart
chart1.Invoke((MethodInvoker)delegate
{
chart1.ChartAreas.Clear();
chart1.Series.Clear();
ChartArea area = new ChartArea();
chart1.ChartAreas.Add(area);
Series series = new Series("water level");
series.ChartArea = area.Name;
series.ChartType = SeriesChartType.Line;
chart1.Series.Add(series);
});
// plot line by adding 2 points: ((time)0, 0) and ((time)1, 1)
for (int i = 0; i < 2; i++)
{
object dummy = JsonConvert.DeserializeObject<object>("null");
chart1.Invoke((MethodInvoker)delegate
{
DateTime time = new DateTime(1970, 1, 1, 0, 0, i, DateTimeKind.Utc);
chart1.Series["water level"].Points.AddXY(time, i);
});
}
}
}
закомментировав только Json.NET линию следующих результатов строки в ожидаемом результате:
object dummy = JsonConvert.DeserializeObject<object>("null");
=== хорошо ===
Вопрос
там что-то случилось с моим кодом?
Update
я просто заменил заинтересованную линию
Thread.Sleep(5000);
и проблема все еще происходит. Я подумал, что, возможно, я слишком рано меняю диаграмму. но теперь я не уверен, что с этим делать.
Я подозреваю, что это в какой-то степени прикручивает вашу культуру. Какова ценность 'CultureInfo.CurrentCulture' до и после вызова json.net? – Sign
это «en-US» до и после – symbiont
Я тоже могу воспроизвести это. Очень странно. –