ModuleBuilder.DefineInitializedData(String, Byte[], FieldAttributes) Methode

Definitie

Definieert een geïnitialiseerd gegevensveld in de sectie .sdata van het draagbare uitvoerbare bestand (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

Parameters

name
String

De naam die wordt gebruikt om naar de gegevens te verwijzen. name kan geen ingesloten null-waarden bevatten.

data
Byte[]

Het binaire grote object (BLOB) van gegevens.

attributes
FieldAttributes

De kenmerken voor het veld. De standaardwaarde is Static.

Retouren

Een veld waarnaar wordt verwezen naar de gegevens.

Uitzonderingen

De lengte is name nul.

– of –

De grootte is data kleiner dan of gelijk aan nul of groter dan of gelijk aan 0x3f0000.

name of data is null.

Voorbeelden

In het volgende voorbeeld wordt de DefineInitializedData methode gebruikt om een geïnitialiseerd gegevensveld te definiëren in de .sdata sectie van het pe-bestand (portable executable).

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

Opmerkingen

Static wordt automatisch opgenomen in attributes.

De gegevens die door deze methode zijn gedefinieerd, worden pas gemaakt als de CreateGlobalFunctions methode wordt aangeroepen.

Van toepassing op