다음을 통해 공유


TransientAttribute 클래스

정의

NSObject 하위 클래스의 매개 변수에 일시적인 것으로 플래그를 지정합니다.

[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
    inherit Attribute
상속
TransientAttribute
특성

설명

이 특성은 매개 변수에 적용되며 Objective-C에서 C#으로 전환할 때만 사용됩니다. 이러한 전환 중에는 다양한 Objective-C NSObjects 매개 변수가 개체의 관리형 표현으로 래핑됩니다.

런타임은 네이티브 개체에 대한 참조를 사용하고 개체에 대한 마지막 관리되는 참조가 사라질 때까지 참조를 유지하며 GC가 실행될 기회가 있습니다.

경우에 따라 C# 런타임에서 네이티브 개체에 대한 참조를 유지하지 않는 것이 중요합니다. 이 문제는 기본 네이티브 코드가 매개 변수의 수명 주기에 특별한 동작을 연결한 경우에 발생합니다. 예를 들어 매개 변수의 소멸자는 일부 정리 작업을 수행하거나 일부 귀중한 리소스를 삭제합니다.

이 특성은 덮어쓴 메서드에서 Objective-C로 돌아갈 때 가능하면 개체를 삭제할 것을 런타임에 알릴 수 있습니다.

규칙은 간단합니다. 런타임이 네이티브 개체에서 새 관리 표현을 만들어야 하는 경우 함수의 끝에 네이티브 개체의 보존 수가 삭제되고 관리되는 개체의 Handle 속성이 지워집니다. 즉, 관리되는 개체에 대한 참조를 유지하면 해당 참조가 쓸모가 없게 됩니다(메서드를 호출하면 예외가 throw됨).

전달된 개체가 만들어지지 않았거나 개체의 관리되는 미해결 표현이 이미 있는 경우 강제 삭제가 수행되지 않습니다.

생성자

TransientAttribute()

새 임시 특성을 초기화합니다.

적용 대상