Подключитесь к программному обеспечению .Net и взаимодействуйте - PullRequest
1 голос
/ 20 февраля 2009

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

Я занимаюсь разработкой надстроек для 2 торговых точек и пытаюсь выяснить это для анализа ввода данных во внешнее окно. Любая информация или понимание будут оценены.

чтобы по-другому взглянуть на то, что я спрашиваю ... в принципе, есть ли способ, возможно, использовать system.diagnostics.processmodule и захватить запущенный процесс с определенным именем, а затем создать его как приложение, а затем копаться в нем, чтобы найти определенный статический объект, и работать с ним?

---- Дополнительно ----

Я заметил, что кто-то упомянул об отражении ... это действительно может быть то, о чем я пытаюсь спросить ... Единственное, что мне нужно, это, возможно, "Отразить" процесс, найти определенный статический класс, а затем привести это класс для «объекта», так что я мог получить доступ к его свойствам ... может быть, это имеет больше смысла.

К сожалению, в программе, с которой я пытаюсь работать, какое-то время не будет никакой архитектуры плагинов, и я подумал, что могу сделать это, используя какую-то безумную идею P / Invoke или рефлексии.

Ответы [ 5 ]

1 голос
/ 20 февраля 2009

Поиск .NET удаленное взаимодействие .

Проще говоря, вы можете создать оконную службу или консольное приложение, которое создает объект, пользовательский, который вы создаете. Затем вы можете зарегистрироваться на порт TCP.

Тогда у вас есть клиентский сервер, который может получить доступ к тому же порту TCP, может даже находиться на 2 разных ПК и взаимодействовать с объектом.

Способ сделать это - создать интерфейс, о котором клиентский объект знает и который реализует сервер.

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

0 голосов
/ 20 февраля 2009

Не уверен, что он будет делать именно то, что вы хотите, но Соколиный глаз позволит вам проверять и корректировать объекты .NET во время выполнения, если вы работаете с приложением Windows:

http://www.acorns.com.au/Projects/Hawkeye/

0 голосов
/ 20 февраля 2009

В .net есть пространство имен, специально предназначенное для этого,

System.AddIn

Вам необходимо добавить ссылку на dll (доступно только в .net 3.5). Вы можете использовать этот класс для разработки надёжной архитектуры подключаемых модулей, которая поддерживает управление версиями и изоляцию стороннего кода

Посмотрите на MSDN несколько примеров.

0 голосов
/ 20 февраля 2009

Другой вариант, если вам на самом деле не нужно что-то менять, а вместо этого просто искать статистику, это создать несколько пользовательских счетчиков производительности и затем отслеживать их с помощью другого приложения. Контроль порогов производительности

0 голосов
/ 20 февраля 2009

легко, нет.

Но возможно автоматизировать WinDBG (или его версию командной строки), а также библиотека расширений SOS для .NET это может быть возможно.

По сути, вам нужно приложение, которое разработано для расширяемости / плагинов / автоматизации.

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

...