Делаем отгружаемые сборки: взаимодействуем между доменами без маршаллинга
3 мин
Для начала, полный список выложенных на Хабре статей данного цикла
Делаем отгружаемые сборки: взаимодействуем между доменами без маршаллинга
Получение указателя на объект .Net
Ручное клонирование потока. Когда Assembler + C# или Java = Love
Изменение кода системных сборок или «утечка» .Net Framework 5.0
Как работает декомпиляция в .Net или Java на примере .Net
Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH
Снимаем дамп объектов с памяти .Net приложения
Делаем отгружаемые сборки: взаимодействуем между доменами без маршаллинга
Получение указателя на объект .Net
Ручное клонирование потока. Когда Assembler + C# или Java = Love
Изменение кода системных сборок или «утечка» .Net Framework 5.0
Как работает декомпиляция в .Net или Java на примере .Net
Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH
Снимаем дамп объектов с памяти .Net приложенияСсылка на проект в GitHub:
DotNetExНа множественных ресурсах время от времени задается вопрос. Можно ли сделать отгружаемые сборки с текущего домена? Так, чтобы попользовался и «давай, до свидания!»? Везде и всегда ответ, который давался – это «нет». Ведь единственное, что можно выгрузить – это домен. Соответственно, если хочется наладить отгрузку, сборку надо помещать в домен, и налаживать между доменами взаимодействие через сериализуемые типы. А это — очень медленное взаимодействие. А мы скажем так. Можно. С ньюансами. Загружать мы будем также в отдельный домен. Но отменим сериализацию при вызове методов между доменами.
Вопросы, которые мы будем решать:
- Создание домена с возможностью отдачи объекта из домена в родительский
- Выгрузка сборки

Продолжаем тему интересного на .Net, от чего мир Java будет посмеиваться (хотя у них это также возможно сделать), а приверженцы С++ говорить: «чего они только не сделают чтобы не учить C++».
Довольно долгое время я пытался изучить Roslyn, но как и все мы, столкнулся с единой проблемой: времени на это абсолютно не было. Как обычно решается этот вопрос? Мы идем на множество ресурсов и ищем доклады и статьи на интересующую нас тему и как по шаблону повторяем движения автора, который показывает как этим пользоваться. С чем мы сталкиваемся, когда ищем описания тем, предложенных на CLRium? Мы не находим ничего. Т.е., конечно, Google выдает что-то по запросам “Roslyn”, “Roslyn samples”, но все-таки это тысячу раз разжеванные примеры, и притом древние как мамонты по меркам выхода новых версий CTP. Это важно, т.к. наличие информации предполагает развитость той или иной инфраструктуры. А самая крутая но не единственная статья по Roslyn на данный момент — это эта:
Мы с вами люди рабочие и зачастую не замечаем ничего что происходит за пределами нашей работы. Так и я, работая изо дня в день, знаю только про свой SpecFlow и смежные вопросы. Но ничего – по сторонам. Этим постом я хочу восполнить пробелы новостей в области .Net
Я не люблю заезженное слово «конференция». Это — встреча разработчиков с общими интересами, которые хотят послушать о трюках, которые позволяют обходить правила, установленные в.Net Framework, которым интересна тема использования меняющих и создающих языки, тулов. А также, что можно получить если знаешь как компилировать и декомпилировать приложение. Об этом не говорят. Потому что разговор на эту тему слишком долгий чтобы уместить в формат одного часа стандартного выступления на конференциях. Я пробовал выступать на .NEXT, и помимо положительных отзывов были «галопом по Европам». Согласен, за час не уложиться. Добро пожаловать в полный формат!
Примеры статей и полный список тем выступлений — под катом

Для тех кто пропустил мои посты: