다음을 통해 공유


ConstructorInfo.Invoke 메서드

정의

이 인스턴스에서 리플렉션하는 생성자를 호출합니다.

오버로드

Invoke(Object[])

지정된 매개 변수가 있는 인스턴스에서 리플렉트된 생성자를 호출하고 일반적으로 사용되지 않는 매개 변수에 대해 기본값을 제공합니다.

Invoke(BindingFlags, Binder, Object[], CultureInfo)

파생 클래스에 구현할 경우 지정된 ConstructorInfo의 제약 조건에서 인수를 사용하여 이 Binder에서 리플렉션한 생성자를 호출합니다.

Invoke(Object[])

Source:
ConstructorInfo.cs
Source:
ConstructorInfo.cs
Source:
ConstructorInfo.cs

지정된 매개 변수가 있는 인스턴스에서 리플렉트된 생성자를 호출하고 일반적으로 사용되지 않는 매개 변수에 대해 기본값을 제공합니다.

public:
 virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
 System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke (object[] parameters);
public object Invoke (object?[]? parameters);
public object Invoke (object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object

매개 변수

parameters
Object[]

이 생성자 매개 변수의 번호, 순서 및 형식(기본 바인더의 제약 조건을 따름)과 일치하는 값 배열입니다. 이 생성자가 매개 변수를 사용하지 않는 경우 Object[] parameters = new Object[0]와 같이 요소 수가 0개이거나 null인 배열을 사용합니다. 값으로 명시적으로 초기화되지 않은 이 배열의 모든 개체는 해당 개체 형식에 대해 기본값을 포함합니다. 참조 형식 요소의 경우 이 값은 null입니다. 값 형식 요소의 경우 이 값은 특정 요소 형식에 따라 0, 0.0 또는 false입니다.

반환

생성자와 연결된 클래스의 인스턴스입니다.

예외

이 클래스가 추상 클래스인 경우

또는

생성자가 클래스 이니셜라이저인 경우

생성자가 Private 또는 protected이고 호출자에게 MemberAccess가 부족한 경우

참고: Windows 스토어 앱 또는 이식 가능한 클래스 라이브러리용 .NET에서 기본 클래스 예외 를 MemberAccessException대신 catch합니다.

parameters 배열에 이 생성자가 수락하는 형식과 일치하는 값이 포함되어 있지 않은 경우

호출된 생성자가 예외를 throw하는 경우

잘못된 개수의 매개 변수가 제공된 경우

TypedReference, ArgIterator, 및 RuntimeArgumentHandle 형식 만들기가 지원되지 않는 경우

호출자에게 필요한 코드 액세스 권한이 없는 경우

설명

배열의 요소 수, 형식 및 순서는 이 인스턴스에서 parameters 반영하는 생성자의 매개 변수 수, 형식 및 순서와 동일해야 합니다. 생성자를 Invoke 호출하기 전에 호출자에게 액세스 권한이 있는지 확인하고 매개 변수가 유효한지 확인합니다.

완전히 신뢰할 수 있는 코드에 대한 액세스 제한은 무시됩니다. 즉, 코드를 완전히 신뢰할 때마다 리플렉션을 사용하여 프라이빗 생성자, 메서드, 필드 및 속성에 액세스하고 호출할 수 있습니다.

참고

인스턴스 생성자가 없는 값 형식의 인스턴스를 만들려면 메서드를 CreateInstance 사용합니다.

이 메서드는 기본값을 사용하여 오버로드된 다음 버전에 대한 편리한 방법입니다. 이 메서드는 재정의할 수 없습니다.

참고

.NET Framework 2.0부터 이 메서드는 호출자가 플래그를 ReflectionPermissionFlag.RestrictedMemberAccess 사용하여 부여된 ReflectionPermission 경우 및 비공용 멤버의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비공용 멤버에 액세스하는 데 사용할 수 있습니다. ( 리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

적용 대상

Invoke(BindingFlags, Binder, Object[], CultureInfo)

Source:
ConstructorInfo.cs
Source:
ConstructorInfo.cs
Source:
ConstructorInfo.cs

파생 클래스에 구현할 경우 지정된 ConstructorInfo의 제약 조건에서 인수를 사용하여 이 Binder에서 리플렉션한 생성자를 호출합니다.

public:
 abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

매개 변수

invokeAttr
BindingFlags

바인딩 형식을 지정하는 BindingFlags 값 중 하나입니다.

binder
Binder

속성 집합을 정의하고, 리플렉션을 통해 바인딩, 인수 형식의 강제 변환, 멤버 호출을 가능하게 하는 Binder 입니다. bindernull이면 Binder.DefaultBinding가 사용됩니다.

parameters
Object[]

binder의 제약 조건에서 이 생성자에 대한 매개 변수의 개수, 순서 및 형식과 일치시키는 데 사용하는 Object 형식의 배열입니다. 이 생성자에 매개 변수가 필요하지 않은 경우에는 Object[] parameters = new Object[0]와 같이 요소를 포함하지 않는 배열을 전달합니다. 값으로 명시적으로 초기화되지 않은 이 배열의 모든 개체는 해당 개체 형식에 대해 기본값을 포함합니다. 참조 형식 요소의 경우 이 값은 null입니다. 값 형식 요소의 경우 이 값은 특정 요소 형식에 따라 0, 0.0 또는 false입니다.

culture
CultureInfo

형식의 강제 변환을 제어하는 데 사용되는 CultureInfo 입니다. 이 매개 변수가 null이면 현재 스레드에 대한 CultureInfo가 사용됩니다.

반환

생성자와 연결된 클래스의 인스턴스입니다.

예외

parameters 배열에 binder 제약 조건에 따라 생성자에서 적용하는 형식과 일치하는 값이 없는 경우

호출된 생성자가 예외를 throw하는 경우

잘못된 개수의 매개 변수가 제공된 경우

TypedReference, ArgIterator, 및 RuntimeArgumentHandle 형식 만들기가 지원되지 않는 경우

호출자에게 필요한 코드 액세스 권한이 없는 경우

이 클래스가 추상 클래스인 경우

또는

생성자가 클래스 이니셜라이저인 경우

생성자가 Private 또는 protected이고 호출자에게 MemberAccess가 부족한 경우

설명

배열의 요소 수, 형식 및 순서는 이 인스턴스에서 parameters 반영하는 생성자의 매개 변수 수, 형식 및 순서와 동일해야 합니다.

생성자를 Invoke 호출하기 전에 호출자에게 액세스 권한이 있고 매개 변수가 올바른 숫자, 순서 및 형식인지 확인합니다.

완전히 신뢰할 수 있는 코드에 대한 액세스 제한은 무시됩니다. 즉, 코드를 완전히 신뢰할 때마다 리플렉션을 사용하여 프라이빗 생성자, 메서드, 필드 및 속성에 액세스하고 호출할 수 있습니다.

참고

인스턴스 생성자가 없는 값 형식의 인스턴스를 만들려면 메서드를 CreateInstance 사용합니다.

참고

.NET Framework 2.0부터 이 메서드는 호출자가 플래그를 ReflectionPermissionFlag.RestrictedMemberAccess 사용하여 부여된 ReflectionPermission 경우 및 비공용 멤버의 권한 부여 집합이 호출자의 권한 부여 집합 또는 해당 하위 집합으로 제한되는 경우 비공용 멤버에 액세스하는 데 사용할 수 있습니다. ( 리플렉션에 대한 보안 고려 사항을 참조하세요.) 이 기능을 사용하려면 애플리케이션이 .NET Framework 3.5 이상을 대상으로 해야 합니다.

추가 정보

적용 대상