Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180

Ошибка при генерации кода для свойства "Model".

20.07.2010, 21:59. Показов 5756. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже голову сломал. Что не так с моим контролом? Там свойство Model выглядит очень просто. И когда я нажимаю F6 (собрать проект), вылитает самое простое диалоговое окно
---------------------------
Microsoft Visual Studio
---------------------------
Ошибка при генерации кода для свойства "Model". Произошла следующая ошибка: "В экземпляре объекта не задана ссылка на объект."
---------------------------
ОК
---------------------------


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
   public partial class PersonView : ObjView
    {
//        private Obj _model;
        public override Obj Model
        {
            get
            {
                return _model;
            }
            set
            {
                _model = value;
                if (_model != null)
                {
                    var model = (Person)_model;
                    secondNameView.Text = model.SecondName;
                    firstNameView.Text = model.FirstName;
                    middleNameView.Text = model.MiddleName;
                    phonesView.Text = model.Phones;
                    emailView.Text = model.Email;
                    noteView.Text = model.Note;
                }
            }
        }

ЧЕ .... ЕМУ НЕ НРАВИТСЯ????
 Комментарий администратора 
Спокойнее с выражениями
Миниатюры
Ошибка при генерации кода для свойства "Model".  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2010, 21:59
Ответы с готовыми решениями:

Ошибка при генерации кода для свойства
Доброго времени суток! Помогите, кто может!!! Выходит ошибка которую не пойму как исправить (см. вложение)! Выдаётся сообщение даже...

Ошибка при генерации кода для свойства "Items"
При попытке сохранить или откомпилировать( сменить имя объекта или еще что ни будь попробовать сделать в конструкторе формы) проект студия...

Ошибка при генерации кода для свойства "UpdateOrder"
Здравствуйте, делал лабораторную по базам данных и возникла такая проблема, что у меня были неправильные типы данных в базе(из-за этого...

13
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.07.2010, 23:48
alexey_baranov, а если переписать по-человечески?
C#
1
2
3
4
5
6
secondNameView.Text = ((Person)_model).SecondName;
firstNameView.Text = ((Person)_model).FirstName;
middleNameView.Text = ((Person)_model).MiddleName;
phonesView.Text = ((Person)_model).Phones;
emailView.Text = ((Person)_model).Email;
noteView.Text = ((Person)_model).Note;
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
21.07.2010, 13:01  [ТС]
Переписал так. Результат тот же.

---------------------------
Microsoft Visual Studio
---------------------------
Ошибка при генерации кода для свойства "Model". Произошла следующая ошибка: "В экземпляре объекта не задана ссылка на объект."
---------------------------
ОК
---------------------------
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
21.07.2010, 13:33
M128K145, alexey_baranov, не надо вот так "по-человечески" переписывать. было лучше!

здесь дело в чем-то другом, не в том, что на картинке. скинь урезанный рабочий код для с повторением этой ошибки
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
21.07.2010, 15:42  [ТС]
Все урезал, чтобы было просто понять. решение helpdesk.sln

Оставил только класс Person и его контрол PersonView. Obj и ObjView - это их родители соответственно.

для того чтобы увидеть баг, надо открыть View\PersonView в режиме конструктора, увеличить/уменьшить его ширину и нажать F6


сначала в свойстве Model Set у меня просто было
SecondNameView.Text= value.SecondName
...

Это не работало потому что конструктор форм автоматически в файле формы создавал строку
personControlName.Model= null
и строка SecondNameView.Text= value.SecondName естественно вылетала

поэтому я добавил проверку

if (valuel != null)
только тогда SecondNameView.Text= value.SecondName
...

И все равно он ругается
Вложения
Тип файла: rar Копия helpdesk.rar (1.01 Мб, 17 просмотров)
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
21.07.2010, 17:47
ну если помягче, то все потому, что нарушены все принципы ООП.
а ошибка там в ObjView.Model - нельзя вот так просто пустоты объявлять

зы. рекомендую всё переписать.
ззы. зачем вообще нужен ObjView?? универсальность?)
зззы. абстрактные классы дизайнер не поймет - переделывать надо по другому
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
21.07.2010, 20:32  [ТС]
Ну что криминального такого с точки зрения ООП в том, что добавил у потомка новое свойство Model? Какие пустоты? я ничего не понял. Что надо переделать-то?

Да, ObjView нужен для того чтобы однообразно работать с кучей классов. Там код например такой:

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
36
                //выбрал вьюшку
                if (value is Person)
                {
                    _objView = new PersonView();
                }
                else if (value is Department)
                {
                    _objView = new FolderView();
                }
                ...
                ... бла бла бла сто разновидностей объектов
                ...
                else
                {
                    _objView = new FolderView();
                }
 
                //прицепил к вьюшке объект
                _objView.Model = value;
 
 
                //настроил вьюшку
                _objView.AutoSize = true;
                _objView.BackColor = System.Drawing.SystemColors.Window;
                _objView.Dock = System.Windows.Forms.DockStyle.Top;
//                view.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
                _objView.Location = new System.Drawing.Point(0, 0);
                _objView.Margin = new System.Windows.Forms.Padding(4);
//                view.Model = null;
                _objView.Name = "personView1";
//                view.Size = new System.Drawing.Size(533, 312);
                _objView.TabIndex = 0;
 
                //добавил вьюшку на панель
                panel1.Controls.Clear();
                panel1.Controls.Add(_objView);

или вот например
C#
1
2
3
4
5
6
7
8
9
        private void saveButton_Click(object sender, EventArgs e)
        {
            using(var sess= Core.OpenSession())
            using (var tx = sess.BeginTransaction())
            {
                sess.SaveOrUpdate(_objView.UpdateModel().Model);
                tx.Commit();
            }
        }
Вот для этих вещей мне и нужна родительская вьюшка ObjView.
Абсрактная она будет, не абстрактная, мне сейчас уже не до этого. Времени нет. Меня больше интересует почему она ругается на мое свойство Model. И как ее померить с ним
могу заменить на setModel() getModel() и будет работать больше чем уверен. Но хотелось бы разобраться или потом везде придется так делать.

Спасибо за помощь!
0
48 / 49 / 10
Регистрация: 24.12.2008
Сообщений: 75
21.07.2010, 23:57
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
public partial class PersonView : ObjView
    {
//        private Obj _model;                      
        public override Obj Model
        {
            get
            {
                return _model;
            }
            set
            {
                _model = value;
                if (_model != null)
                {
                    var model = (Person)_model;
                    secondNameView.Text = model.SecondName;
                    firstNameView.Text = model.FirstName;
                    middleNameView.Text = model.MiddleName;
                    phonesView.Text = model.Phones;
                    emailView.Text = model.Email;
                    noteView.Text = model.Note;
                }
            }
        }
<----Why this line "private Obj _model" is commented ???
<----Is "_model" a public field in ObjView class ???
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
22.07.2010, 04:44
akasex, 1) cause it's been already declared and initialized in ObjView class
2) no. protected

if you're really to help him - just download the source code (post#5) and debug it

зы. на нашем форуме запрещено общение на языках, отличных от русского. зная то, что ты можешь говорить по-русски, меры могут быть строгими
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
22.07.2010, 07:07  [ТС]
Да, как сказал Mikant, _model - это protected свойство в родительской вьюшке.

Я до того как наследовать их делал интерфейс IObjView из

C#
1
2
public Obj Model{get; set;}
public IObjView UpdateMode();
и реализовывал этот интерфейс во всех вьюшках. И кстати все работало на ура! Вот с тех пор осталось наверное закоментированное _model. Работать с такими вьюшками точно также удобно как с наследуемыми, а вот писать их дольше, потому что приходиться много повторяться.

Ести какие-нибудь идеи почему студия ругается?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
22.07.2010, 09:07
Цитата Сообщение от Mikant Посмотреть сообщение
не надо вот так "по-человечески" переписывать. было лучше!
Вопрос, что лучше? Создавать каждый раз новый объект? Или просто сделать приведение к типу? А если вызывать этот сеттер в цикле много раз - памяти не жалко? А если еще и расширить эту модель фотографией?
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
22.07.2010, 11:16  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
Вопрос, что лучше? Создавать каждый раз новый объект?
Новый объект при этом не создается.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
22.07.2010, 12:14
alexey_baranov, вот в этой строке
C#
1
var model = (Person)_model;
происходит создание нового временного объекта
0
5 / 5 / 4
Регистрация: 06.05.2010
Сообщений: 180
23.07.2010, 07:42  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
alexey_baranov, вот в этой строке
C#
1
var model = (Person)_model;
происходит создание нового временного объекта
C#
1
2
3
4
var model= _model.Clone(); // вот тут происходит создание нового объекта
 
var model= _model;  //а тут ничего
var model= (Person)_model;  //не создается. model будет ссылаться на ТОТ ЖЕ САМЫЙ объект
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.07.2010, 07:42
Помогаю со студенческими работами здесь

Ошибка при генерации кода для свойства "updateorder"
Есть C# Studio 2010 и MSQL Server 2008. При копировании таблицы на форму получаю ошибку Как я установливал бд ...

Ошибка при генерации кода для своства "DropDownControl" файл .png не найден
давно делал контрол на базе комбобокса для него сделал картинок несколько, все положил в ресурсы проекта. Потом понял что у меня нчего...

ошибка создания таблицы при генерации кода в майскль воркбенч
Кто нибудь видит, в чем проблема?????????? Executing SQL script in server ERROR: Error 1005: Can't create table 'mydb.Desired_Job'...

Ошибка при генерации свойства "Items"
Ошибка возникает при добавлении кнопок в MainMenuStrip. Форма абсолютно пустая. Только что созданная. Кроме MainMenuStrip контролов нет....

После удаления записи и генерации события(с записью) возникает ошибка No query results for model
После удаления записи и генерации события(с записью) возникает ошибка. Если произвести удаление после создания событий, то ошибки не...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru