Можно ли заставить приложение .net загрузить другую сборку .net с самого начала, если на нее не было ссылок? - PullRequest
0 голосов
/ 12 ноября 2010

Можно ли заставить приложение .net загружать другую сборку .net с самого начала с помощью манипуляции app.config или каким-либо другим способом?

Я хочу создать другое приложение для загрузки моей сборки в границах процесса при запуске.Пожалуйста, не спрашивайте меня, почему :) Я просто пытаюсь обойти устаревшее приложение с отсутствием расширяемости.

Возникла проблема - мне нужно расширить пользовательский интерфейс устаревшего приложения путем доступа к дереву элементов управления.Поэтому я хочу получить доступ к экземпляру Main Form как классу экземпляра System.Windows.Forms.Form.Это невозможно из другого процесса, поэтому у меня есть некоторые мысли о том, как внедрить сборку в устаревшие границы приложения и в дальнейшем использовать мой код сборки.

Проблема, с которой я борюсь: WinForms: Form.FromHandle возвращает нулевое значение для главной формы процесса для кода, загруженного в исполняемый файл .net

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

Если программа использует операторы Debug или Trace, вы можете создать фиктивный TraceListener, который подключается к интерфейсу пользователя при первом вызове Write или WriteLine.

0 голосов
/ 12 ноября 2010

Это должно быть возможно сделать с помощью Assembly.Load и этого семейства методов.Если это не сработает, потому что приложению требуются все ссылки заранее (это зависит от того, что происходит во время запуска вашего приложения), возможно, вы могли бы загружать вещи в другом домене приложения и делать это таким образом?

Конечно, нынешний дизайн может предотвратить такие вещи.Что вы пробовали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...