21

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

Цей конструктор є і на сервері і на локалі ?

Бо якщо нема, то

koala написав:

Та додайте вже той конструктор на сервер!
(у такі моменти починаєш розуміти ur_nazа)

На локалці його немає, а на сервері є

22

Re: Помилка Object reference not set to an instance of an object структури

Тоді видаліть. Якщо код на локалці і на сервері різний і на локалці працює, то має запрацювати і на сервері, якщо буде такий самий.

Подякували: burlaka.dina1

23

Re: Помилка Object reference not set to an instance of an object структури

burlaka.dina написав:
Engineer написав:

Цей конструктор є і на сервері і на локалі ?

Бо якщо нема, то

koala написав:

Та додайте вже той конструктор на сервер!
(у такі моменти починаєш розуміти ur_nazа)

На локалці його немає, а на сервері є

Цікаво. А як же на локалі тоді ініціалізується змінна _appEnvironment в класі XMLController без цього конструктора ?

Подякували: burlaka.dina1

24 Востаннє редагувалося burlaka.dina (20.01.2021 12:27:53)

Re: Помилка Object reference not set to an instance of an object структури

koala написав:

Тоді видаліть. Якщо код на локалці і на сервері різний і на локалці працює, то має запрацювати і на сервері, якщо буде такий самий.

на сервері він потрібен для того, аби отрімати шлях до файлу, а на локалці це не потрібно

25

Re: Помилка Object reference not set to an instance of an object структури

П.1.1 Правил.
Виправте якомога швидше.

Подякували: burlaka.dina1

26

Re: Помилка Object reference not set to an instance of an object структури

koala написав:

П.1.1 Правил.
Виправте якомога швидше.

виправила, дякую)

27

Re: Помилка Object reference not set to an instance of an object структури

Почав писати відповідь, але потім зрозумів, що вам це не треба. Я вам сказав, у чому проблема, ви продовжуєте наполягати, що не в цьому. Який сенс вам щось розжовувати, якщо ви краще за мене знаєте, в чому проблема?

дописувати не буду

Відсутність конструктора означає, що замість нього буде використаний стандартний. Який не виставить значення _appEnvironment. Тобто він залишиться null. А у вас код

Подякували: leofun011

28

Re: Помилка Object reference not set to an instance of an object структури

koala написав:

Почав писати відповідь, але потім зрозумів, що вам це не треба. Я вам сказав, у чому проблема, ви продовжуєте наполягати, що не в цьому. Який сенс вам щось розжовувати, якщо ви краще за мене знаєте, в чому проблема?

дописувати не буду

Відсутність конструктора означає, що замість нього буде використаний стандартний. Який не виставить значення _appEnvironment. Тобто він залишиться null. А у вас код

я зрозуміла, що потрібен конструктор, у методах він є, але, я так розумію, що його і у структури потрібно додати, можливо я помиляюсь, але я додала його в структуру таким чином

 public readonly IWebHostEnvironment _appEnvironment;
public Color_struct_art(IWebHostEnvironment appEnvironment):this()
        {
            _appEnvironment = appEnvironment;
        }

тепер отримую помилку під час виклику структури

Значение параметра по умолчанию для "color_struct_art" должно быть константой времени компиляции.   

я так розумію, що неправильно передаю параметри

 Color_struct_art color_struct_art = new Color_struct_art(_appEnvironment)

тому що  _appEnvironment повинна буди const, якщо я правильно зрозуміла, можливо Ви підкажете, як це правильно реалізувати

29

Re: Помилка Object reference not set to an instance of an object структури

Не потрібно нічого додавати в структури
об'єкт IWebHostEnvironment _appEnvironment використовується для інформації про зовнішнє середовище програми, в тому числі і про папку звідки програма запускається.

Бачу можливу помилку тут

 public class Global_El
    {
        public static IWebHostEnvironment _appEnvironment;
        public Global_El(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
        }

        public Global_El() // цей конструктор взагалі потрібний ???
        {
        }

        Color_struct_art color_struct_art = new Color_struct_art();
        Type_struct_art type_struct_art = new Type_struct_art();
        Dimensions_struct_art dimensions_struct_art = new Dimensions_struct_art();
        Filling_struct_id filling_struct_id = new Filling_struct_id();
        Glass_struct_id glass_struct_id = new Glass_struct_id();
        Color_struct_id color_struct_id = new Color_struct_id();
        Openingconfig_struct_id openingconfig_struct_id = new Openingconfig_struct_id();

        Saving_El saving_El = new Saving_El();
        XML_El xml_El = new XML_El(_appEnvironment); //помилка тут

В останньому рядку помилка - створення елемента XML_El, коли _appEnvironment ще не ініціалізований в конструкторі
бо таке створення членів класу відбувається до виклику конструктора класу. Зі створенням структур проблем не виникає, бо там не передаються ніякі параметри, а при створенні  XML_El передався непроініціалізований об'єкт _appEnvironment, через який в подальшому і виникла помилка

Думаю що найпростіше  переробити ось так

public class Global_El
    {
        public static IWebHostEnvironment _appEnvironment;
        public Global_El(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
            xml_El = new XML_El(_appEnvironment);
        }       

        Color_struct_art color_struct_art = new Color_struct_art();
        Type_struct_art type_struct_art = new Type_struct_art();
        Dimensions_struct_art dimensions_struct_art = new Dimensions_struct_art();
        Filling_struct_id filling_struct_id = new Filling_struct_id();
        Glass_struct_id glass_struct_id = new Glass_struct_id();
        Color_struct_id color_struct_id = new Color_struct_id();
        Openingconfig_struct_id openingconfig_struct_id = new Openingconfig_struct_id();

        Saving_El saving_El = new Saving_El();
        XML_El xml_El;
Подякували: burlaka.dina, Arete, leofun01, Yola4

30

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

Не потрібно нічого додавати в структури
об'єкт IWebHostEnvironment _appEnvironment використовується для інформації про зовнішнє середовище програми, в тому числі і про папку звідки програма запускається.

Бачу можливу помилку тут

 public class Global_El
    {
        public static IWebHostEnvironment _appEnvironment;
        public Global_El(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
        }

        public Global_El() // цей конструктор взагалі потрібний ???
        {
        }

        Color_struct_art color_struct_art = new Color_struct_art();
        Type_struct_art type_struct_art = new Type_struct_art();
        Dimensions_struct_art dimensions_struct_art = new Dimensions_struct_art();
        Filling_struct_id filling_struct_id = new Filling_struct_id();
        Glass_struct_id glass_struct_id = new Glass_struct_id();
        Color_struct_id color_struct_id = new Color_struct_id();
        Openingconfig_struct_id openingconfig_struct_id = new Openingconfig_struct_id();

        Saving_El saving_El = new Saving_El();
        XML_El xml_El = new XML_El(_appEnvironment); //помилка тут

В останньому рядку помилка - створення елемента XML_El, коли _appEnvironment ще не ініціалізований в конструкторі
бо таке створення членів класу відбувається до виклику конструктора класу. Зі створенням структур проблем не виникає, бо там не передаються ніякі параметри, а при створенні  XML_El передався непроініціалізований об'єкт _appEnvironment, через який в подальшому і виникла помилка

Думаю що найпростіше  переробити ось так

public class Global_El
    {
        public static IWebHostEnvironment _appEnvironment;
        public Global_El(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
            xml_El = new XML_El(_appEnvironment);
        }       

        Color_struct_art color_struct_art = new Color_struct_art();
        Type_struct_art type_struct_art = new Type_struct_art();
        Dimensions_struct_art dimensions_struct_art = new Dimensions_struct_art();
        Filling_struct_id filling_struct_id = new Filling_struct_id();
        Glass_struct_id glass_struct_id = new Glass_struct_id();
        Color_struct_id color_struct_id = new Color_struct_id();
        Openingconfig_struct_id openingconfig_struct_id = new Openingconfig_struct_id();

        Saving_El saving_El = new Saving_El();
        XML_El xml_El;

сказати, що ви геній - нічого не сказати!!!!))) все працює!))) дякую Вам величезне!!))