ModuleBuilder.DefineInitializedData(String, Byte[], FieldAttributes) Méthode

Définition

Définit un champ de données initialisé dans la section .sdata du fichier exécutable portable.

public System.Reflection.Emit.FieldBuilder DefineInitializedData (string name, byte[] data, System.Reflection.FieldAttributes attributes);

Paramètres

name
String

Nom utilisé pour faire référence aux données. name ne peut pas contenir des valeurs Null imbriquées.

data
Byte[]

Objet BLOB de données.

attributes
FieldAttributes

Attributs du champ. La valeur par défaut est Static.

Retours

Champ pour référencer les données.

Exceptions

La longueur de name est égale à zéro.

- ou -

La taille de data est inférieure ou égale à zéro, ou supérieure ou égale à 0x3f0000.

name ou data est null.

CreateGlobalFunctions() a été appelé précédemment.

Exemples

L’exemple suivant utilise la DefineInitializedData méthode pour définir un champ de données initialisé dans la .sdata section du fichier exécutable portable (PE).

AppDomain currentDomain;
AssemblyName myAssemblyName;

// Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain;
myAssemblyName = new AssemblyName();
myAssemblyName.Name = "TempAssembly";

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder =
   currentDomain.DefineDynamicAssembly
               (myAssemblyName, AssemblyBuilderAccess.Run);

// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule");

// Define the initialized data field in the .sdata section of the PE file.
FieldBuilder myFieldBuilder =
    myModuleBuilder.DefineInitializedData("MyField",new byte[]{01,00,01},
               FieldAttributes.Static|FieldAttributes.Public);
 myModuleBuilder.CreateGlobalFunctions();

Remarques

Static est automatiquement inclus dans attributes.

Les données définies par cette méthode ne sont pas créées tant que la CreateGlobalFunctions méthode n’est pas appelée.

Notes

À compter de .NET Framework 2.0 Service Pack 1, ce membre n’a plus besoin ReflectionPermission de l’indicateur ReflectionPermissionFlag.ReflectionEmit . (Consultez Problèmes de sécurité dans l’émission de réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided), 2.1