AppDomain::DefineDynamicAssembly Method (AssemblyName^, AssemblyBuilderAccess, String^, Boolean, IEnumerable<CustomAttributeBuilder^>^)
Defines a dynamic assembly using the specified name, access mode, storage directory, and synchronization option.
Assembly: mscorlib (in mscorlib.dll)
public: AssemblyBuilder^ DefineDynamicAssembly( AssemblyName^ name, AssemblyBuilderAccess access, String^ dir, bool isSynchronized, IEnumerable<CustomAttributeBuilder^>^ assemblyAttributes )
Parameters
- name
-
Type:
System.Reflection::AssemblyName^
The unique identity of the dynamic assembly.
- access
-
Type:
System.Reflection.Emit::AssemblyBuilderAccess
The mode in which the dynamic assembly will be accessed.
- dir
-
Type:
System::String^
The name of the directory where the dynamic assembly will be saved. If dir is null, the current directory is used.
- isSynchronized
-
Type:
System::Boolean
true to synchronize the creation of modules, types, and members in the dynamic assembly; otherwise, false.
- assemblyAttributes
-
Type:
System.Collections.Generic::IEnumerable<CustomAttributeBuilder^>^
An enumerable list of attributes to be applied to the assembly, or null if there are no attributes.
Return Value
Type: System.Reflection.Emit::AssemblyBuilder^A dynamic assembly with the specified name and features.
| Exception | Condition |
|---|---|
| ArgumentNullException | name is null. |
| ArgumentException | The Name property of name is null. -or- The Name property of name starts with white space, or contains a forward or backward slash. |
| AppDomainUnloadedException | The operation is attempted on an unloaded application domain. |
Use this method overload to specify attributes that do not work correctly unless they are applied when a dynamic assembly is created. For example, security attributes such as SecurityTransparentAttribute and SecurityCriticalAttribute do not work correctly if they are added after a dynamic assembly has been created.
If isSynchronized is true, the following methods of the resulting AssemblyBuilder will be synchronized: DefineDynamicModule, DefineResource, AddResourceFile, GetDynamicModule, SetEntryPoint, and Save. If two of these methods are called on different threads, one will block until the other is completed.
Available since 4.0