Есть у меня на руках DLL от Unity-игры. Необходимо её модифицировать. В первом приближении — заставить дампить тексты из ресурсных файлов в текстовые файлики, а потом читать их из этих самых файликов вместо оригинальных ресурсов.
Делаю я это сейчас посредством Reflexil, тобишь наживаю редактируя код в каждом конкретном случае. Это долго, муторно, и неудобно.
В своё время я экспериментировал с Mono.Cecil и описывал собственную систему инъекции кода на основе атрибутов, попутно делая все классы родной либины публичными, а методы — виртуальными для перегрузки. Это был танец над пропастью и не всегда удавалось добиться желаемого эффекта.
В связи с чем возникает вопрос — есть ли сейчас какой-нибудь современный способ для проделывания подобных операций для C# DLL вообще или Unity-игр в частности?
Отдельно стоит вопрос о существовании инструмента, который позволил бы вынести из это библиотеки типы в собственную сборку, перебросив ссылки на неё. Таким образом, чтобы можно было без перекомпиляции всей сборки выносить отдельные типы в свою собственную, не нарушая взаимодействия между ними?
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт