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 (PE).

public:
 System::Reflection::Emit::FieldBuilder ^ DefineInitializedData(System::String ^ name, cli::array <System::Byte> ^ data, System::Reflection::FieldAttributes attributes);
public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, byte[] data, System.Reflection.FieldAttributes attributes);
member this.DefineInitializedData : string * byte[] * System.Reflection.FieldAttributes -> System.Reflection.Emit.FieldBuilder
Public Function DefineInitializedData (name As String, data As Byte(), attributes As FieldAttributes) As FieldBuilder

Paramètres

name
String

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

data
Byte[]

Objet blob (Binary Large Object) 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 est égale name à zéro.

-ou-

La taille est data 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();
Dim currentDomain As AppDomain
Dim myAssemblyName As AssemblyName
' 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.
Dim myFieldBuilder As FieldBuilder = _
      myModuleBuilder.DefineInitializedData("MyField", New Byte() {1, 0, 1}, _
      FieldAttributes.Static Or 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.

S’applique à