Получение значения переменной класса переданного по ссылке

В Recipients есть метод, который вызван из SENDER и обращается к переменной класса SENDER таким образом: mainSender.SENDER.pathToSpace. Но я получаю сообщение, что ссылка на объект не указывает на экземпляр класса. Подскажите, как сделать правильно?

MAIN

private void mainSender_Load(object sender, EventArgs e)
{
      settings = new settings();
      log = new log(this);
      mysql = new mysql(this);

      Senders = new Senders(this);
      Recipients = new Recipients(this);
      SENDER = new sender(this);

}

Recipients

internal Recipients(mainServer mainServerIn)
{

    mainServer = mainServerIn;
}

internal List<string> getFromWindows()
{
    List<string> result = new List<string>();

    result = Directory.GetDirectories(mainSender.SENDER.pathToSpace + @"\").Select(directoryInfo => new DirectoryInfo(directoryInfo).Name).ToList();

    return result;
}

SENDER

internal sender(mainSender mainSenderIn)
{

     mainSender = mainSenderIn;

     pathToSpace = mainSender.settings.senderPathToSpace;

     syncWindowsMysqlRicipients();
  
  }

internal void syncWindowsMysqlRicipients()
{
     List<string> listFromWindows = mainSender.Recipients.getFromWindows();
}

В методе syncWindowsMysqlRicipients() я получаю ошибку


Ответы (1 шт):

Автор решения: Igor

Уберите

syncWindowsMysqlRicipients();

из конструктора sender.

В этом методе происходит обращение к mainSender.SENDER до того, как левой части в

SENDER = new sender(this);

присваивается значение.

→ Ссылка