TypeBuilder.DefineDefaultConstructor 메서드
업데이트: 2007년 11월
기본 생성자를 정의합니다. 여기서 정의된 생성자는 부모의 기본 생성자를 호출하기만 합니다.
어셈블리: mscorlib(mscorlib.dll)
[ComVisibleAttribute(true)] public ConstructorBuilder DefineDefaultConstructor( MethodAttributes attributes )
/** @attribute ComVisibleAttribute(true) */ public ConstructorBuilder DefineDefaultConstructor( MethodAttributes attributes )
public function DefineDefaultConstructor( attributes : MethodAttributes ) : ConstructorBuilder
매개 변수
- attributes
- 형식: System.Reflection.MethodAttributes
생성자에 적용될 특성을 나타내는 MethodAttributes 개체입니다.
| 예외 | 상황 |
|---|---|
| NotSupportedException | 부모 형식(기본 형식)에 기본 생성자가 없는 경우 |
| InvalidOperationException | 해당 형식이 CreateType을 사용하여 이미 만들어져 있는 경우 - 또는 - 현재 동적 형식에 대해 IsGenericType 속성이 true로 설정되어 있는데 IsGenericTypeDefinition 속성은 false로 설정되어 있는 경우 |
기본 생성자가 자동으로 정의되므로 다음과 같은 상황에서만 이 메서드를 호출할 필요가 있습니다.
다른 생성자를 정의했으며 기본 클래스 생성자를 간단하게 호출하는 기본 생성자를 원하는 경우
기본 생성자의 특성을 PrivateScope, Public, HideBySig, SpecialName 및 RTSpecialName 이외의 것으로 설정하려는 경우
다음 코드 예제에서는 DefineConstructor를 사용하여 동적 형식에 생성자의 특정 시그니처 및 특성을 설정하고, MSIL 채우기를 위해 해당 ConstructorBuilder를 반환합니다.
// Define the constructor. Type[] constructorArgs = { typeof(String) }; ConstructorBuilder myConstructorBuilder = helloWorldTypeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, constructorArgs); // Generate IL for the method.The constructor stores its argument in the private field. ILGenerator myConstructorIL = myConstructorBuilder.GetILGenerator(); myConstructorIL.Emit(OpCodes.Ldarg_0); myConstructorIL.Emit(OpCodes.Ldarg_1); myConstructorIL.Emit(OpCodes.Stfld, myGreetingField); myConstructorIL.Emit(OpCodes.Ret);
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.