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

Definizione

Definisce un campo dati inizializzato nella sezione sdata del file eseguibile portabile (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

Parametri

name
String

Nome utilizzato per fare riferimento ai dati. name non può contenere valori Null incorporati.

data
Byte[]

Oggetto binario di grandi dimensioni (BLOB) di dati.

attributes
FieldAttributes

Attributi per il campo. Il valore predefinito è Static.

Valori restituiti

Campo per fare riferimento ai dati.

Eccezioni

La lunghezza di name è zero.

oppure

La dimensione di data è minore o uguale a zero o maggiore o uguale a 0x3f0000.

name o data è null.

CreateGlobalFunctions() è stato chiamato in precedenza.

Esempio

Nell'esempio seguente viene utilizzato il DefineInitializedData metodo per definire un campo dati inizializzato nella .sdata sezione del file eseguibile portabile (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()

Commenti

Static viene incluso automaticamente in attributes.

I dati definiti da questo metodo non vengono creati fino a quando non viene chiamato il CreateGlobalFunctions metodo .

Si applica a