확장 최소화
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

TypeBuilder.DefineDefaultConstructor 메서드

업데이트: 2007년 11월

기본 생성자를 정의합니다. 여기서 정의된 생성자는 부모의 기본 생성자를 호출하기만 합니다.

네임스페이스:  System.Reflection.Emit
어셈블리:  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 개체입니다.

반환 값

형식: System.Reflection.Emit.ConstructorBuilder

생성자를 반환합니다.

예외상황
NotSupportedException

부모 형식(기본 형식)에 기본 생성자가 없는 경우

InvalidOperationException

해당 형식이 CreateType을 사용하여 이미 만들어져 있는 경우

- 또는 -

현재 동적 형식에 대해 IsGenericType 속성이 true로 설정되어 있는데 IsGenericTypeDefinition 속성은 false로 설정되어 있는 경우

기본 생성자가 자동으로 정의되므로 다음과 같은 상황에서만 이 메서드를 호출할 필요가 있습니다.

  • 다른 생성자를 정의했으며 기본 클래스 생성자를 간단하게 호출하는 기본 생성자를 원하는 경우

  • 기본 생성자의 특성을 PrivateScope, Public, HideBySig, SpecialNameRTSpecialName 이외의 것으로 설정하려는 경우

다음 코드 예제에서는 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 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
© 2013 Microsoft. All rights reserved.