0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 44
1

Несогласованность по доступности: доступность типа свойств

23.05.2019, 22:46. Показов 7479. Ответов 10
Метки нет (Все метки)

Добрый вечер, не могу разобраться, в чем проблема.
В этом кусочке кода подчеркивает планеты и диспетчера
Если навести на планеты(строка 4), то ошибка "Несогласованность по доступности: доступность типа свойств List<Planet> ниже доступности свойства Dispatcher._planet
А если навести на диспетчера(строка 7), то ошибка "Несогласованность по доступности: доступность типа свойств List<Planet> ниже доступности метода Dispatcher.Dispatcher(List<AShip> ,List<Planet>)
C#
1
2
3
4
5
6
7
8
9
10
11
12
  public class Dispatcher
    {
        public List<AShip> _ships { get; set; }
        public List<Planet> ]_planets { get; set; }
        public List<DistanceBill> _distance { get; set; }
 
        public Dispatcher(List<AShip> ship, List<Planet> planet)
        {
            _planets = planet;
            _ships = ship;
            _distance = new List<DistanceBill>();
        }
Если же убрать перед классом модификатор доступа public, то ошибки исчезают. В чем проблема?
Я пытаюсь провести сериализацию из xml-файла по программе. Возникла проблема при сборке, что
System.InvalidOperationException: "Лаб4.Dispatcher недоступен в силу его уровня защиты. Возможна обработка только общих типов."
На этом месте:
C#
1
XmlSerializer formatter = new XmlSerializer(typeof(Dispatcher));
Дорогие программисты, помогите разобраться!!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2019, 22:46
Ответы с готовыми решениями:

Несовместимость по доступности: доступность типа поля 1 ниже доступности поля 2
Создаю базу данных C# WPF при попытки создать класс появилась ошибка: &quot;Несовместимость по...

Несовместимость по доступности: доступность типа параметра ниже доступности метода
Всем привет! Делаю задание на тему наследия классов. Есть класс «Поликлиника». Туда нужно загрузить...

Несовместимость по доступности: доступность типа возвращаемого значения
Добрый вечер. У меня возникла проблема, не могу понять ее причину. class MyPoint { ...

Ошибка: Доступность типа возвращаемого значения ниже доступности оператора
Здравствуйте, у меня есть интерфейс IPoint, от него идут 2 класса: Point2D и Point3D, причем...

10
681 / 502 / 233
Регистрация: 02.10.2012
Сообщений: 1,718
24.05.2019, 09:39 2
покажите класс Planet
0
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 44
24.05.2019, 09:59  [ТС] 3
Immo,вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 class Planet
    {
        public double need;
        public int y;
 
 
        public string Name { get; private set; }
        public int Need { get; set; } 
        public double X { get; private set; } 
        public double Y { get; private set; }
        public int StartNeed { get; private set; }
 
        public Planet(string name, int need, double x, double y)
        {
            Name = name;
            Need = need;
            X = x;
            Y = y;
            StartNeed = need;
        }
 
        public static Planet Create(string input)
        {
            var bufp = input.Split('\t');
            var name = Convert.ToString(bufp[0]);
            var need = Convert.ToInt32(bufp[3], CultureInfo.InvariantCulture);
            var x = Convert.ToDouble(bufp[1], CultureInfo.InvariantCulture);
            var y = Convert.ToDouble(bufp[2], CultureInfo.InvariantCulture);
            Planet planet = new Planet(name, need, x, y);
            return planet;
 
            throw new Exception("Неизвестное описание планеты");
        }
        
    }
0
681 / 502 / 233
Регистрация: 02.10.2012
Сообщений: 1,718
24.05.2019, 10:00 4
сделайте так
C#
1
public class Planet
0
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 44
24.05.2019, 10:09  [ТС] 5
Immo, System.InvalidOperationException: "Не удалось выполнить десериализацию типа "Лаб4.Planet", поскольку он содержит свойство "Name", не имеющее общего метода задания."
А как эту проблему теперь решить,не подскажете ? Возникает в этой строке
XmlSerializer formatter = new XmlSerializer(typeof(Dispatcher));
0
681 / 502 / 233
Регистрация: 02.10.2012
Сообщений: 1,718
24.05.2019, 10:15 6
прочитайте, если не поймете в чем ошибка то напишу
0
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 44
24.05.2019, 10:20  [ТС] 7
Immo, честно говоря, не понимаю немного в чем состоит ошибка
0
681 / 502 / 233
Регистрация: 02.10.2012
Сообщений: 1,718
24.05.2019, 10:42 8
для начала класс Dispatcher имеет конструктор, а вы вызываете его без аргументов
0
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
24.05.2019, 10:43 9
При сериализации XML не проходит доступ private.
В самом начале класс Planet имеет модификатор internal, что тоже не айс.

Если класс подвергается сериализации, то модификаторы класса и свойств должны быть public

Если уж совсем не принципиально как сериализовать, то лучше использовать JSON
0
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 44
24.05.2019, 10:53  [ТС] 10
Immo, для сериализации это требуется? программа отлично работала без сериализации и так. А какие именно необходимо передать аргументы? Имя?
0
33 / 24 / 9
Регистрация: 21.11.2018
Сообщений: 161
24.05.2019, 13:57 11
Цитата Сообщение от Iribill Посмотреть сообщение
public List<Planet> ]_planets { get; set; }
а что за скобка квадратная?

Добавлено через 1 минуту
ну и тег нужен для того, чтобы показать, что класс сериализуется. И как Вам выше намекнул товарищ yurickas, в JSON можно. Но он словари, по-моему не умеет сериализовать. Поэтому в бинарник самое простое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2019, 13:57

Несовместимость по доступности: доступность типа поля "IBlock[*,*]" ниже доступности поля "blocks"
public class Figure { protected IBlock blocks; public IBlock Blocks ...

Несогласованность по доступности!
Доброго времени суток! Столкнулся с такой ошибкой: CS0051: Несогласованность доступности:...

Несовместимость по доступности: доступность типа поля "System.Collections.ObjectModel.Collection<WindowsFormsApplication1.Form1.Record >" ниже доступно
Добрый вечер....У меня пишет ошибку Несовместимость по доступности: доступность типа поля...

Несогласованность по доступности типа поля
вроде как несогласованность это если они находятся не обе в паблике, а что у меня - попробуй...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.