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

Definition

Definiert ein initialisiertes Datenfeld im Sdata-Abschnitt der portablen ausführbaren Datei (PORTABLE Ausführbare Datei, 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

Parameter

name
String

Der Name, der verwendet wird, um auf die Daten zu verweisen. name Eingebettete Nullwerte können nicht enthalten.

data
Byte[]

Das binäre große Objekt (BLOB) von Daten.

attributes
FieldAttributes

Die Attribute für das Feld. Der Standardwert lautet Static.

Gibt zurück

Ein Feld, das auf die Daten verweist.

Ausnahmen

Die Länge von name 0 ist null.

-oder-

Die Größe von data ist kleiner oder gleich Null oder größer als oder gleich 0x3f0000.

name oder data ist null.

Beispiele

Im folgenden Beispiel wird die DefineInitializedData Methode verwendet, um ein initialisiertes Datenfeld im .sdata Abschnitt der portablen ausführbaren Datei (PORTABLE Ausführbare Datei, PE) zu definieren.

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

Hinweise

Static wird automatisch in attributes.

Die von dieser Methode definierten Daten werden erst erstellt, wenn die CreateGlobalFunctions Methode aufgerufen wird.

Gilt für: