Поделиться через


Сценарии динамических сборок порождаемого отражения

Порождаемое отражение поддерживает создание динамических модулей, определенных в динамических сборках. Динамический модуль, созданный в динамической сборке, может быть временным или постоянным.

Ограничения в отношении ссылок на типы

Сборки могут ссылаться на типы, определенные в другой сборке. Временная динамическая сборка может безопасно ссылаться на типы, определенные в другой временной динамической сборке, в постоянной динамической сборке или в статической сборке. Однако среда CLR не позволяет постоянному динамическому модулю ссылаться на тип, определенный во временном динамическом модуле. Причина заключается в том, что при загрузке постоянного динамического модуля после его сохранения на диске среда выполнения не может разрешить ссылки на типы, определенные во временном динамическом модуле.

Ограничения в отношении эмиссии в удаленные домены приложений

В некоторых сценариях требуется создавать и выполнять сборку на удаленном домене приложения. Порождение отражения не допускает непосредственное порождение сборки в удаленный домен приложения. Решением является порождение динамической сборки в текущий домен приложения, сохранение этой порожденной динамической сборки на диск и последующая загрузка динамической сборки в удаленный домен приложения.

Режимы доступа для динамической сборки

Динамические сборки могут быть созданы с использованием одного из указанных ниже режимов доступа.

  • Запуск

    Динамическая сборка, представленная объектом AssemblyBuilder, является временной. Эта динамическая сборка может использоваться только для выполнения порожденного кода.

  • Сохранить

    Динамическая сборка, представленная объектом AssemblyBuilder, является постоянной, но может выполняться только после загрузки PE-файла с диска.

  • RunAndSave

    Динамическая сборка, представленная объектом AssemblyBuilder , является постоянной, но может также выполняться до или после сохранения этой сборки на диск.

Режим доступа нужно указывать при определении динамической сборки, при этом в дальнейшем он не может быть изменен. Среда выполнения использует режим доступа динамической сборки для оптимизации ее внутреннего представления.

См. также

Другие ресурсы

Предоставление динамических методов и сборок

Использование порождаемого отражения