Сценарии динамических сборок порождаемого отражения
Порождаемое отражение поддерживает создание динамических модулей, определенных в динамических сборках. Динамический модуль, созданный в динамической сборке, может быть временным или постоянным.
Ограничения в отношении ссылок на типы
Сборки могут ссылаться на типы, определенные в другой сборке. Временная динамическая сборка может безопасно ссылаться на типы, определенные в другой временной динамической сборке, в постоянной динамической сборке или в статической сборке. Однако среда CLR не позволяет постоянному динамическому модулю ссылаться на тип, определенный во временном динамическом модуле. Причина заключается в том, что при загрузке постоянного динамического модуля после его сохранения на диске среда выполнения не может разрешить ссылки на типы, определенные во временном динамическом модуле.
Ограничения в отношении эмиссии в удаленные домены приложений
В некоторых сценариях требуется создавать и выполнять сборку на удаленном домене приложения. Порождение отражения не допускает непосредственное порождение сборки в удаленный домен приложения. Решением является порождение динамической сборки в текущий домен приложения, сохранение этой порожденной динамической сборки на диск и последующая загрузка динамической сборки в удаленный домен приложения.
Режимы доступа для динамической сборки
Динамические сборки могут быть созданы с использованием одного из указанных ниже режимов доступа.
Запуск
Динамическая сборка, представленная объектом AssemblyBuilder, является временной. Эта динамическая сборка может использоваться только для выполнения порожденного кода.
Сохранить
Динамическая сборка, представленная объектом AssemblyBuilder, является постоянной, но может выполняться только после загрузки PE-файла с диска.
RunAndSave
Динамическая сборка, представленная объектом AssemblyBuilder , является постоянной, но может также выполняться до или после сохранения этой сборки на диск.
Режим доступа нужно указывать при определении динамической сборки, при этом в дальнейшем он не может быть изменен. Среда выполнения использует режим доступа динамической сборки для оптимизации ее внутреннего представления.