Какие плюсы и минусы использования библиотеки Reflection.Emit по сравнению с CodeDOM для динамической генерации кода во время выполнения?
Я пытаюсь создать некоторые (относительно сложные) динамические классы в системе на основе метаданных, доступных во время выполнения в форме XML. Я буду создавать классы, которые расширяют существующие классы в сборке приложения, реализуют дополнительные интерфейсы, добавляют методы и переопределяют виртуальные и абстрактные члены.
Прежде чем углубляться в реализацию, я хочу убедиться, что выбрал соответствующую технику. Была бы полезна любая информация о том, чем отличаются эти разные методы генерации кода. Кроме того, будет полезна любая информация о библиотеках с открытым исходным кодом, которые упрощают или оптимизируют работу с любым API.
CSharpCodeProvider
API доступны только в .NET Core 3.0 и новее. Они даже не являются частью .NET Standard (в отличие отReflection.Emit
) - person nawfal   schedule 13.04.2020