C# NullReferenceException (ссылка на объект не указывает на экземпляр объекта)

Screenshot screenshot = ScreenshotActions.Take(CaptureMode.Window);
var info = ScreenshotActions.Save(@"C:\Users\User\Desktop\screenShotEX\", screenshot);
WinForm.OnScreenGrab(info); // <--- nullReferenceException

Данный код выбрасывает NullReferenceException, хотя в момент выбрасывания все поля инициализированы, подскажите, пожалуйста, в чем может быть проблема и как её можно исправить

введите сюда описание изображения

ScreenshotInfo.cs

    public class ScreenshotInfo
    {
        private DateTime dateTimeStamp_;
        public DateTime DateTimeStamp
        {
            get { return dateTimeStamp_; }
            set { if (dateTimeStamp_ != value) dateTimeStamp_ = value; }
        }

        private string name_;
        public string Name
        {
            get { return name_; }
            set { if (name_ != value) name_ = value; }
        }

        private bool isSaved_;
        public bool IsSaved
        {
            get { return isSaved_; }
            set { if (isSaved_ != value) isSaved_ = value; }
        }

        private string path_;
        public string PATH
        {
            get { return path_; }
            set { if (path_ != value && !string.IsNullOrWhiteSpace(value) && !string.IsNullOrEmpty(value)) path_ = value; }
        }

        public ScreenshotInfo(DateTime dateTimeStamp, string screenshotName, bool isSaved, string path)
        {
            DateTimeStamp = dateTimeStamp;
            Name = screenshotName;
            IsSaved = isSaved;
            PATH = path;
        }
    }

Screenshot.cs

    public class Screenshot
    {
        private Bitmap screenshot_;
        public Bitmap CurrentScreenshot
        {
            get { return screenshot_; }
            set { if (screenshot_ != value) screenshot_ = value; }
        }

        private DateTime dateTimeStamp_;
        public DateTime DateTimeStamp
        {
            get { return dateTimeStamp_; }
            set { if (dateTimeStamp_ != value) dateTimeStamp_ = value; }
        }

        public Screenshot(Bitmap screenshot)
        {
            CurrentScreenshot = screenshot;
            DateTimeStamp = DateTime.Now;
        }
    }

ScreenshotActions.cs

 public static class ScreenshotActions
    {
        public static Screenshot Take(CaptureMode captureMode = CaptureMode.Window)
        {
            return new Screenshot(new ScreenCapturer().Capture(captureMode));
        }

        public static ScreenshotInfo Save(string PATH, Screenshot screenshot)
        {
            if (screenshot.CurrentScreenshot != null)
            {
                var screenshotName = GenerateScreenshotName();
                screenshot.CurrentScreenshot.Save(PATH + screenshotName);
                return new ScreenshotInfo(screenshot.DateTimeStamp, screenshotName, true, PATH);
            }
            else
            {
                throw new Exception("Screenshot didn`t save, unknown error");
            }
        }

        private static string GenerateScreenshotName()
        {
            Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
            return BaseWork.ConvertFromBaseToBase(unixTimestamp.ToString(), 10, 36);
        }
    }

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