UnmanagedCallersOnlyAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 콜백을 전달하는 방법을 보여 줍니다.
[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) |
적용 대상
.NET