powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между Проектами
12 сообщений из 12, страница 1 из 1
Передача данных между Проектами
    #38562504
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Подскажи как передать данные между проектами ? Много написано как передавать данные между формами, а вот между проектами не найду информацию.
У меня в одном решении два проекта. Из проект1 вызывается проект2.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
private void toolStripMenuItem2_Click(object sender, EventArgs e)
        {
            var runningProcs = from proc in Process.GetProcesses(".") orderby proc.Id select proc;
            if (runningProcs.Count(p => p.ProcessName.Contains("Проект2")) > 0)
            {
                MessageBox.Show("Процесс уже запущен!");
            }
            else
            {
                ProcessStartInfo infoStartProcess = new ProcessStartInfo();
                string pathToDirectory = Application.StartupPath;
                pathToDirectory = pathToDirectory.Replace("Проект1", "Проект2");
                infoStartProcess.WorkingDirectory = pathToDirectory;
                infoStartProcess.FileName = "Проект.exe";
                Process.Start(infoStartProcess);
            }
          }
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38562506
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,

какого вида данные нужно передавать? Критична ли скорость передачи?

Можно использовать много разных способов. Например, пайпы - pipes, сокеты - sockets, очередь сообщений - msmq и другое.
Чтобы было легко переключаться с одного способа на другой, следует использовать WCF.
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38562605
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikкакого вида данные нужно передавать? Критична ли скорость передачи?
Можно использовать много разных способов. Например, пайпы - pipes, сокеты - sockets, очередь сообщений - msmq и другое.
Чтобы было легко переключаться с одного способа на другой, следует использовать WCF.
Думается мне, здесь совсем другое, если как пример приводится "передача" данных между формами.

Tanya_0306,

если передача однонаправленная - достаточно референса на один проект в другом, и дальше - по аналогии с формами. Если двунаправленная - выносить контракты методов сборок в интерфейсы, интерфейсы поместить в отдельную сборку, референсить её к каждому проекту. И, соответственно, работать не с конкретными реализациями, а с интерфейсами.
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38562780
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,
Я дополню - исполняемый файл (.exe) ничем не отличается от файла "библиотек" (.dll)
кроме возможности запускаться самостоятельно, первым, сразу из операционной системы.
В остальном все классы, которые в нем обьявлены можно использовать для строительства обьектов в любом другом проэкте.

Ограничение будет только в том, что доступны для вызова будут только классы и методы, помеченные как public.
Если вы передаете данные между формами - то так же можно поступать и с любыми другими обьектами.
Форма это тоже обычный класс.
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563482
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за информацию!
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563855
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129Tanya_0306,
Я дополню - исполняемый файл (.exe) ничем не отличается от файла "библиотек" (.dll)
кроме возможности запускаться самостоятельно, первым, сразу из операционной системы.
В остальном все классы, которые в нем обьявлены можно использовать для строительства обьектов в любом другом проэкте.

Ограничение будет только в том, что доступны для вызова будут только классы и методы, помеченные как public.
Если вы передаете данные между формами - то так же можно поступать и с любыми другими обьектами.
Форма это тоже обычный класс.Примером кода подтвердить сможете? Передав данные из App1.Form1 в App2.Form2 ?
При условии, что вызов в App1.Form1 должен не инстанциировать объект App2.Form2, а запустить отдельный процесс App2 и передать в него данные?

Правда интересно - это не стёб...
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563950
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovа запустить отдельный процесс App2 и передать в него данные?
А вас в свою очередь не затруднит объяснить, заченм нужно такое извращение - запускать форму из сборки основного процесса в отдельном процессе? Чтобы жизнь мёдом не казалась? Инструменты для межпроцессного взаимодействие были перечислены выше - но зачем это нужно в данном случае?
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563967
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныAlex Kuznetsovа запустить отдельный процесс App2 и передать в него данные?
А вас в свою очередь не затруднит объяснить, заченм нужно такое извращение - запускать форму из сборки основного процесса в отдельном процессе? Чтобы жизнь мёдом не казалась? Инструменты для межпроцессного взаимодействие были перечислены выше - но зачем это нужно в данном случае?Похоже, коллега, вы чавой-то не так поняли... Я такого не говорил, да и ТС тоже.
У неё задача: есть два исполняемых файла. Она хочет из одного процесса (исполняемый файл1.exe со своей форма1) запустить другой процесс(исполняемый файл2.exe со своей форма2) и передать данные между файл1.exe.форма1 и файл2.exe.форма2.
При этом файл1.exe != файл2.exe.
Единственное что их объединяет, так это то, что оба они реализованы на .Net в рамках одного решения, НО в разных проектах (сиречь сборках).
Кроме как сделать это с помощью межпроцессных взаимодействий, о которых здесь уже говорилось, я не знаю.
А вот коллега D129, похоже знает.
Я и попросил его поделиться опытом.
Интересно же.
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563974
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovЕдинственное что их объединяет, так это то, что оба они реализованы на .Net в рамках одного решения, НО в разных проектах (сиречь сборках).
Какое-то очень странное решение. Зачем было вообще объединять проекты, если это два абсолютно разных самостоятельных exe? Или зачем их было разделять, когда один проект можно оформить в виде class library, и не морочиться с запуском процессов и ремотингом?
А коллега D129, я думаю, просто отвечал исходя из предположения, что проекты в солюшене - это exe с референсами на class library из того же солюшена.
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38563985
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныКакое-то очень странное решение. Зачем было вообще объединять проекты, если это два абсолютно разных самостоятельных exe? Или зачем их было разделять, когда один проект можно оформить в виде class library, и не морочиться с запуском процессов и ремотингом?
Да фиг его знает - это вопрос к Tanya_0306

Сон Веры ПавловныА коллега D129, я думаю, просто отвечал исходя из предположения, что проекты в солюшене - это exe с референсами на class library из того же солюшена.Ждём что скажет коллега D129... Хрустальный шар сегодня барахлит не по детски
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38564121
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovСон Веры ПавловныА коллега D129, я думаю, просто отвечал исходя из предположения, что проекты в солюшене - это exe с референсами на class library из того же солюшена.Ждём что скажет коллега D129... Хрустальный шар сегодня барахлит не по детски

Вообще-то да. Я не имелл в виду "формулу абсолютного топлива" - и пытался распутать непонятки новичка.
:-)

Но способы передачи данных в другой процесс я знаю. Это можно сделать многими способами.
Первый - если процесс запускается из аппликации - параметры командной строки.
Второй - если процесс запущен и в нем есть форма - послать сообщение через API виндовс, прямо в нужный контрол.
Третий - если есть возможность добавить интерфейс к процессу, и выбрав этот процесс, привести его к интерфейсу и вызывать соответствующие методы.

Если нужен код - то не сегодня. Зловреды капиталисты работать заставили...
:-)
...
Рейтинг: 0 / 0
Передача данных между Проектами
    #38564233
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129,

Понятно, а то я уж испугался, что что-то новое появилось, да мимо меня прошмыгнуло
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача данных между Проектами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]