2016-01-20 7 views
1

У меня есть два приложения C#. Первые из них создает экземпляр объекта, устанавливают некоторые свойства и т.д.C# Обмен экземплярами между приложениями

второго приложение должны получить доступ к этому примеру с его заданными свойствами и т.д.

Есть ли способ, что я могу сделать это. Возможно, храним экземпляр внутри операционной системы или что-то в этом роде?

Я обнаружил, что могу сохранить объект, но первое приложение создает соединение с интерфейсом низкого уровня, для которого требуется некоторое время. Я хочу сохранить это соединение открытым и использовать его в других приложениях.

+0

Вы пробовали RabbitMQ? Или любая другая система сообщений? – titol

ответ

4

Вам нужны какие-то средства inter-process communication. Вернувшись в «старые времена», это было сделано с удалением .NET, но технология устарела.

Технология .NET, которая в настоящее время рекомендуется Microsoft для межпроцессного взаимодействия, представляет собой Windows Communication Foundation (WCF). Да, некоторые могут утверждать, что это слишком много для простого обмена объектами, но в настоящее время это поддерживается и рекомендуется для этой цели.

обзор высокого уровня ФОС и другие варианты можно найти в следующей статье MSDN:

0

Вы не можете сделать это, как описано. Нет двух приложений, которые могут обмениваться памятью между приложениями. Вместо этого, когда вы передаете объекты от одного к другому, они сериализуются, и если вам нужно, чтобы кто-то отвечал на изменения, вы должны посмотреть обратные вызовы событий или тому подобное. Я рекомендую заглянуть в службы WCF для этого.

1

См: What is the best choice for .NET inter-process communication?

Для межпроцессного WCF связи является лучшим выбором. Он поддерживает a number of different transport mechanisms (including Named Pipes) и может быть полностью сконфигурирован. Я очень рекомендую , чтобы вы взглянули на WCF.

Ссылки:
How to communicate with a windows service from an application that interacts with the desktop?
What is the simplest method of inter-process communication between 2 C# processes?
Simple Inter-process Communication system for .NET framework

Смежные вопросы