С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106

Ссылка на объект в другой проект

11.07.2017, 09:18. Показов 2992. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Столкнулся с такой проблемой. Есть проект который состоит из нескольких проектов (все подключены в referance). Так вот есть у меня в проекте LDG объект model. А во втором проекте Shell есть у меня функция которая должна весь этот объект записывать в бинарный файл. Но у меня возникла проблема, которую я не как не могу решить. Мне необходимо этот объект передать. Т.е. объект model который создается и заполняется в проекте LDG передать в проект Shell в функцию CreateFile которая собственно и создает сам файл, входным . При вызове данной функции и указании входным параметром свой объект выдает ошибку имя не существует в текущем контексте. Подскажите хоть в каком направлении двигаться, а то до этого момента мне в принципе не приходилось работать с проектами которые содержат в себе другие проекты. А про передачу объектов между ними я так вообще молчу...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2017, 09:18
Ответы с готовыми решениями:

Ссылка на объект другой формы
Как правильно ссылаться на объект с другой формы? модификатор Public стоит private void button1_Click(object sender, EventArgs e) ...

Ссылка на объект с одного класса в другой
Доброго времени суток. Начну с того, что в objective-c я довольно недавно стал пробовать. перешел с С++ на него. Помогите пожалуйста...

Класс не наследует свойство, если там ссылка на другой объект
Есть вот такой класс: namespace controllers\admin; use controllers\admin\DefaultController; class AuthController extends...

12
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
11.07.2017, 09:31
примеры кода Вашего дайте, на словах может быть много чего, но предварительно похоже, что вы просто используете переменную которая даже и не объявлена в классе, и этого Вам не нужно делать
0
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
11.07.2017, 09:31
GoOFee, ну, ты же библиотечные классы используешь и ничего... Убедись, что класс, который ты используешь в другом проекте, не объявлен с ключевым словом internal и явно объявлен с public, тогда студия сама предложит добавить namespace с таким классом в виде using.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
11.07.2017, 09:34
Цитата Сообщение от GoOFee Посмотреть сообщение
Подскажите хоть в каком направлении двигаться
GoOFee, если каждый из проектов - это отдельная сборка (.exe или .dll), то я бы посоветовал рассмотреть использование WCF и механизма именованных каналов для передачи данных между сборками.
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
11.07.2017, 09:42  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
примеры кода Вашего дайте, на словах может быть много чего, но предварительно похоже, что вы просто используете переменную которая даже и не объявлена в классе, и этого Вам не нужно делать
Весь код выкладывать не буду потому что его уж очень много там но в краце выглядит так:
Класс который описывается объект (проект LDG)
C#
1
2
[Serializable]
    public  class CModel
дальше просто идет описание полей и всего прочего нужного, но не очень интересного. Создание самого объекта и работы с ним тоже не выкладываю там очень очень очень много кода (больше 5000 срок создается все в томже проекте LDG)
функция которая создает файл выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace LDG
{
    public class CResult
    {
        public bool CrateFile( CModel sModel)
        {
            //string FileName = DateTime.Now.ToString("dd.MM.yy HH.mm.ss");
            try
            {
                //FileStream fs = new FileStream(@".\DataBase" + FileName + ".dat", FileMode.Create);
                FileStream fs = new FileStream(@".\DataBase\aaa.dat", FileMode.Create);
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(fs, sModel);
                fs.Close();
                return true;
            }
            catch { MessageBox.Show("Файл с данными отсутствует или поврежден!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return false; }
        }
Функция не полностью выложена так как там дальше идет другая функция. Описывается все там же в проекте LDG.
А вот сам вызов выглядит так:
C#
1
2
3
4
5
        private void BOkButton_Click(object sender, RoutedEventArgs e)
        {
            CResult aaa = new CResult();
            aaa.CrateFile(model);
        }
И вот тут возникает ошибка которую я выше описал. При этом присутствует строка
C#
1
using LDG;
и в ссылках есть подключенный проект LDG
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
11.07.2017, 09:48
переменная model как объявлена у Вас?
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
11.07.2017, 16:30  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
переменная model как объявлена у Вас?
вот таким образом
C#
1
public CModel model = new CModel();
Объявлена вне функции
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
11.07.2017, 16:36
GoOFee, как понимаю она объявлена вне формы где используется? (в каком из проектов или что, запутанная система, если проект Ваш не "секретный" приложите аттачем быстрее понять будет что и как устроено)
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
11.07.2017, 17:06  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
как понимаю она объявлена вне формы где используется? (в каком из проектов или что, запутанная система, если проект Ваш не "секретный" приложите аттачем быстрее понять будет что и как устроено)
Вот в этом и проблема я не могу скинуть его скинуть. Она объявлена там где и используется в проекте LDG, но помимо этого она также используется в проекте shell. Все модификаторы доступа установлены public
0
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
11.07.2017, 17:08
GoOFee, ну и как, тогда, тебе можно помочь?..
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
11.07.2017, 17:15
Лучший ответ Сообщение было отмечено GoOFee как решение

Решение

GoOFee, не только в модификаторах вопрос, кароче если я примерно, более-менее понял Вашу структуру, то без кода у меня банальное "решение" скорей всего просто перед переменной model нужно добавить название класса/объекта этого класса типо LDG.model (но это пример для статической переменной) Не видя полного кода толком не решить Вашей проблемы т.к половина не ясна, что где зачем объявляется и используется

p.s дайте хоть пару скринов со структурой проекта и примерным расположением где что, не факт что поможет, но всё же
1
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
11.07.2017, 18:07
Цитата Сообщение от GoOFee Посмотреть сообщение
C#
1
2
CResult aaa = new CResult(); 
aaa.CrateFile(model);
окей, а где создается model?
0
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 106
12.07.2017, 09:22  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
окей, а где создается model?
Данный код находится в проекте shell. а в проекте LDG создается объект model и там же идет работа с ним.

Добавлено через 41 минуту
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
p.s дайте хоть пару скринов со структурой проекта и примерным расположением где что, не факт что поможет, но всё же
Все разобрался спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.07.2017, 09:22
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр объекта при обращении к DGV другой формы
не могу решить проблему(........ pib это textbox

Ссылка на объект не указывает на экземпляр объекта при передаче данных в DGV другой формы
Здравствуйте уважаемые знатоки, извиняюсь если не туда пишу, новую тему не хочеться заводить, я недавно стал изучать язык C#, и вопросов...

Если объект добавлять в 2 контейнера, то в них будет ссылка или новый объект?
Есть объект - obj. Последовательно добавляю его в два контейнера container1.add(obj); container2.add(obj); Если я удалю...

Проблема с массивами + System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объект
Ошибка выскакивает на atsakymai = new string; В первой форме //ФОРМА 2: public partial class Form2 : Form { ...

Есть ссылка на объект. Можно ли изменить объект, который хранится по этому адресу?
Есть ссылка на объект. Можно ли изменить объект, который хранится по этому адресу? Т.е. не меняя саму ссылку, изменить тип объекта, на...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru