Definizione di un assembly dinamico
La reflection emit consente di scegliere tra numerose modalità per la creazione di assembly dinamici. È possibile creare assembly dinamici tramite i vari metodi System.AppDomain.DefineDynamicAssembly. DefineDynamicAssembly restituisce un oggetto AssemblyBuilder e richiede al chiamante di specificare il valore dell'enumerazione AssemblyBuilderAccess. Il valore dell'enumerazione specifica se l'assembly dinamico sarà di tipo solo eseguito, solo salvato oppure eseguito e/o salvato. Con alcuni metodi è necessario che il chiamante fornisca le evidenze, ovvero l'insieme di informazioni che costituiscono l'input per le decisioni relative ai criteri di protezione, ad esempio le autorizzazioni che è possibile concedere al codice. Per altri metodi occorre che il chiamante richieda autorizzazioni. Esistono tre tipi di richieste di autorizzazione: necessarie, facoltative e rifiutate.
Di seguito sono indicati i vari modi in cui è possibile definire assembly dinamici:
Definizione di un assembly dinamico denominato.
Definizione di un assembly dinamico denominato specificando la directory in cui salvare l'assembly.
Definizione di un assembly dinamico denominato specificando l'evidenza.
Definizione di un assembly dinamico denominato specificando le richieste di autorizzazione.
Definizione di un assembly dinamico denominato specificando l'evidenza e la directory in cui salvare l'assembly.
Definizione di un assembly dinamico denominato specificando le richieste di autorizzazione e la directory in cui salvare l'assembly.
Definizione di un assembly dinamico denominato specificando l'evidenza e le richieste di autorizzazione.
Definizione di un assembly dinamico denominato specificando l'evidenza, le richieste di autorizzazione e la directory in cui salvare l'assembly.
Definizione di un assembly dinamico denominato specificando l'evidenza, le richieste di autorizzazione, la directory in cui salvare l'assembly e un parametro booleano indicante se la creazione di moduli, tipi e membri nell'assembly dinamico debba essere sincronizzata.
Un assembly dinamico persistente viene salvato utilizzando il metodo AssemblyBuilder.Save. Il metodo Save specifica il nome del file in cui scrivere l'assembly.