Как использовать System.Web.Helpers.Chart в DLL - PullRequest
0 голосов
/ 25 мая 2018

Я хочу использовать 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" });

Но когда я запускаю свой код, я получаю следующую ошибку:

Система.ArgumentNullException: 'Значение не может быть нулевым.Имя параметра: httpContext '

Мой код находится внутри DLL, а не проекта MVC или WebAPI.Поэтому я думаю, что по этой причине ему не хватает HttpContext.

Есть ли еще способ использовать эту библиотеку Chart из моего проекта DLL?

1 Ответ

0 голосов
/ 25 мая 2018

Вам нужно сослаться на 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);
        }
    }
}        
...