ModuleBuilder.DefineInitializedData(String, Byte[], FieldAttributes) 메서드

정의

PE(이식 가능한 실행 파일) 파일의 .sdata 섹션에서 초기화된 데이터 필드를 정의합니다.

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

매개 변수

name
String

데이터를 참조하는 데 사용되는 이름입니다. name 은 포함된 null을 포함할 수 없습니다.

data
Byte[]

데이터의 BLOB(Binary Large Object)입니다.

attributes
FieldAttributes

필드의 특성입니다. 기본값은 Static입니다.

반품

데이터를 참조할 필드입니다.

예외

길이 name 는 0입니다.

-또는-

크기 data 가 0보다 작거나 같거나 0x3f0000 보다 크거나 같습니다.

name 또는 data .입니다 null.

CreateGlobalFunctions() 가 이전에 호출되었습니다.

예제

다음 예제에서는 이 메서드를 사용하여 DefineInitializedData PE(이식 가능한 실행 파일) 파일의 섹션에서 초기화된 데이터 필드를 .sdata 정의합니다.

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

설명

Static 가 자동으로 포함됩니다 attributes.

이 메서드에서 정의한 데이터는 메서드가 호출될 때까지 CreateGlobalFunctions 만들어지지 않습니다.

적용 대상