Как я могу модифицировать загруженные в память методы в данной сборке, чтобы clr при создании новых объектов для какого-либо класса создавал в нем новые объекты с измененным кодом?изменить сборку во время выполнения?
2
A
ответ
1
Я не думаю, что вы можете это сделать. Но вы можете создавать новые классы в новой сборке в памяти, используя Reflection.Emit.
Это много работы. Вы можете получить помощь от фреймворка, такого как Castle DynamicProxy, который позволяет создавать прокси для ваших классов во время выполнения. Таким образом, вы можете запустить любой код до или после запуска исходных методов или полностью изменить методы, не вызвав оригинальный метод.
3
Вы можете использовать Mono Cecil, чтобы изменить сборку перед ее загрузкой.
Вы можете сохранить измененную сборку в массив байтов, затем вызвать Assembly.Load
для загрузки массива байтов.
Смежные вопросы
- 1. Загрузите сборку во время выполнения, которая ссылается на вызывающую сборку
- 2. Изменить язык во время выполнения
- 3. Изменить вид во время выполнения
- 4. Изменить web.config во время выполнения
- 5. Изменить string.xml во время выполнения
- 6. Изменить SelectedValuePath во время выполнения
- 7. Изменить ширину kendo numerictextbox во время выполнения
- 8. Как изменить имя таблицы во время выполнения
- 9. изменить базу данных во время выполнения codeigniter
- 10. как изменить persistence.xml во время выполнения
- 11. Изменить переменную на литерал во время выполнения?
- 12. Как изменить запрос sql во время выполнения?
- 13. Как изменить шрифт приложения во время выполнения?
- 14. изменить метод/функцию во время выполнения
- 15. Как изменить символ во время выполнения, C#
- 16. Изменить текст в AlertDialog во время выполнения
- 17. Изменить TextBox BackColor во время выполнения
- 18. Как изменить значение метки во время выполнения?
- 19. Изменить значения переполнения во время выполнения?
- 20. Изменить цвет KendoPanel во время выполнения
- 21. Как изменить высоту image_view во время выполнения
- 22. Изменить LINQ запрос во время выполнения
- 23. Как изменить путь просмотра во время выполнения
- 24. Как изменить шаблон Silverlight во время выполнения?
- 25. кнопки изменить стиль во время выполнения
- 26. Изменить стиль элемента ListBox во время выполнения
- 27. Изменить имя таблицы во время выполнения
- 28. изменить значение глобальной переменной во время выполнения
- 29. Изменить колонку из DataGridView во время выполнения
- 30. Как изменить разделитель файлаScan во время выполнения?
Я бы предпочел не использовать сторонние библиотеки –
ОК, затем сдавайся или перепишите Моно Сесил с нуля. Альтернативы нет. – SLaks