Как использовать System.Web.Helpers.Chart в DLL
Я хочу использовать System.Web.Helpers.Chart
в моем проекте. Я просто попробовал пример из документов:
https://docs.microsoft.com/en-us/aspnet/web-pages/overview/data/7-displaying-data-in-a-chart
var myChart = new Chart(width: 600, height: 400)
.AddTitle("Chart Title")
.AddSeries(
name: "Employee",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "2", "6", "4", "5", "3" });
Но когда я запускаю свой код, я получаю следующую ошибку:
System.ArgumentNullException: 'Значение не может быть нулевым. Имя параметра: httpContext'
Мой код находится внутри DLL, а не проекта MVC или WebAPI. Поэтому я думаю, что по этой причине ему не хватает HttpContext.
Есть ли еще способ использовать это Chart
библиотека из моего проекта DLL?
1 ответ
Вам нужно будет сослаться на System.Drawing, System.Windows.Forms и System.Windows.Forms.DataVisualization.
Вот фрагмент, который строит гистограмму (вы можете выбрать любой тип, который вам нужен) из данных, которые вы предоставили в примере, и локально сохраняет их в файл.
using System.Drawing;
using System.Windows.Forms.DataVisualization.Charting;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var chart = new Chart()
{
Size = new Size(600, 400),
Titles = { "Chart Title" }
};
var series = new Series("Employee");
series.ChartType = SeriesChartType.Bar;
series.Points.DataBindXY(new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, new[] { 2, 6, 4, 5, 3 });
chart.ChartAreas.Add(new ChartArea());
chart.Series.Add(series);
chart.SaveImage("TestChart.png", ChartImageFormat.Png);
}
}
}