Есть ли способ запустить код при загрузке сборки? - PullRequest
0 голосов
/ 28 марта 2011

Я создаю приложение, которое загружает ненадежные сборки для проверки (т. Е. Извлекает полное имя сборки).Из соображений безопасности я пытаюсь придумать, как можно написать эти сборки, чтобы они могли выполнять код при загрузке.У меня пока нет кода с методом, но я хотел выкинуть его сюда, чтобы посмотреть, сможет ли кто-нибудь.

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

СпециальноЯ буду звонить Assembly.Load и <LoadedAssebmly>.FullName.Может быть, есть лучший способ загрузить имя сборки без использования класса Assembly?

Спасибо, Мэтт

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Да, это возможно: .Net: запуск кода при загрузке сборки

Я полагаю, вы используете метод проверки сборки, который не загружает ее, т. Е. Mono.Cecil

1 голос
/ 28 марта 2011

Прежде всего, есть класс AssemblyName.Позволяет найти название сборки без загрузки.Во-вторых, вы можете загружать сборки, используя Assembly.ReflectionOnlyLoad, который использует контекст только для отражения - из такой сборки невозможно выполнить код.

...