다음을 통해 공유


UnmanagedCallersOnlyAttribute 클래스

정의

UnmanagedCallersOnlyAttribute로 표시된 메서드는 네이티브 코드에서 직접 호출할 수 있습니다. 함수 토큰은 C#에서 address-of 연산자를 사용하여 지역 변수에 로드되고 네이티브 메서드에 콜백으로 전달될 수 있습니다.

public ref class UnmanagedCallersOnlyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class UnmanagedCallersOnlyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type UnmanagedCallersOnlyAttribute = class
    inherit Attribute
Public NotInheritable Class UnmanagedCallersOnlyAttribute
Inherits Attribute
상속
UnmanagedCallersOnlyAttribute
특성

예제

다음 예제에서는 네이티브 함수에 표시된 UnmanagedCallersOnlyAttribute 콜백을 전달하는 방법을 보여 줍니다.

[DllImport("NativeLibrary")]
internal static extern unsafe void NativeFunctionWithCallback(delegate* unmanaged[Cdecl]<int, int> callback);

[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
private static int DoubleInt(int i) => i * 2;

public static unsafe void PassCallbackToNativeFunction()
{
    NativeFunctionWithCallback(&DoubleInt);
}

설명

이 특성으로 표시된 메서드에는 다음과 같은 제한 사항이 있습니다.

  • 으로 표시 static되어야 합니다.
  • 관리 코드에서 호출해서는 안 됩니다.
  • Blittable 인수만 있어야 합니다.
  • 제네릭 형식 매개 변수가 없거나 제네릭 클래스 내에 포함되어야 합니다.

생성자

UnmanagedCallersOnlyAttribute()

UnmanagedCallersOnlyAttribute 인스턴스를 초기화합니다.

필드

CallConvs

선택 사항입니다. 생략하면 런타임은 기본 플랫폼 호출 규칙을 사용합니다.

EntryPoint

선택 사항입니다. 생략할 경우 컴파일하는 동안 명명된 내보내기를 내보내지 않습니다.

속성

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상