Вызов метода в удаленном приложении winforms? - PullRequest
2 голосов
/ 22 августа 2011

Поскольку у меня никогда не было причин делать это раньше, я не знаю, как сделать следующее, или если это вообще возможно?!

У меня есть приложение C # winforms для одного экземпляра (Slave)на нем есть элемент управления, отображающий данные расписания с использованием пользовательских элементов управления .Net.Приложение должно быть открыто из DynamicsNAV / Navision (Master), поскольку оно не может использовать используемые элементы управления.

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

Может кто-нибудь предложить какой-нибудь совет или помощь?

Спасибо, Карл

Ответы [ 3 ]

2 голосов
/ 23 августа 2011

Если вы используете Dynamics NAV 6 R2 и Role Tailored Client, вы можете использовать .NET interop для вызова методов в приложении WinForms.Если вы используете классический клиент, вам нужно реализовать COM-компонент, чтобы сделать то же самое.

В таком случае приложение WinForms - это «сервер», а NAV - «клиент».Вы можете увидеть пример того, как это может работать, используя IpcChannel здесь на MSDN.

0 голосов
/ 22 августа 2011

Как насчет отправки данных в любой форме (аргументы команды, файл, сокет TCP / IP и т. Д.), Анализа данных и вызова созданной вами команды с аргументами, созданными из разделения?

0 голосов
/ 22 августа 2011

Да, вы можете сделать это - обычно это называется «межпроцессное взаимодействие».

Существует много доступных методов, но пока вы используете .Net 3.5 или более позднюю версию, вам, вероятно, следует использовать WCF (Windows Communication Foundation) для этого. В Интернете доступно множество руководств и введений в WCF.

Если вы используете версию .Net до 3.5, посмотрите .Net remoting .

...