Метод расширения ведет себя странно C#

У меня есть и метод расширения для Forms.DataVisualization.Charting.Chart. В методе расширения я обращаюсь к массиву chartareas и манипулирую в нем объектом chartarea. Однако каждый раз, когда я запускаю свой код, я получаю исключение EntryPointNotFoundException.

//This file is in another assembly and is being reference.
namespace Hetco.Forms
{
    public static class ChartingExtensions
    {
        public static void DoSomething( this Chart chart )
    {
            var c = chart.ChartAreas[0];
            c.Position.X = 0;   // Here I get EntryPointNotFoundException here.
            c.AxisY.ScrollBar.ButtonColor = Color.FromArgb(105, 96, 81);
    }
    }
}

//In another module
private System.Windows.Forms.DataVisualization.Charting.Chart c = new System.Windows.Forms.DataVisualization.Charting.Chart();
c.ChartAreas.Add(somechart);
c.DoSomething();

Однако, если я добавил следующий код

//In another module
private System.Windows.Forms.DataVisualization.Charting.Chart c = new System.Windows.Forms.DataVisualization.Charting.Chart();
c.ChartAreas.Add(somechart);
var a = c.ChartAreas[0];
a.Position.X = 0;
c.DoSomething();

Я не получаю EntryPointNotFoundException, но я получаю NullReferenceException в

    `c.AxisY.ScrollBar.ButtonColor = Color.FromArgb(105, 96, 81); //in the extension` method.

Я могу избежать этого исключения, вызвав этот код перед c.DoSomething(), но я хочу иметь возможность использовать метод расширения. Я использую C# 4.0. Я, наверное, забыл что-то сделать, но я просто не знаю, что.

0 ответов

Другие вопросы по тегам