VariantWrapper 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
주의
VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.
형식 VT_VARIANT | VT_BYREF 의 데이터를 관리 코드에서 관리되지 않는 코드로 마샬링합니다. 이 클래스는 상속할 수 없습니다.
public ref class VariantWrapper sealed
[System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class VariantWrapper
public sealed class VariantWrapper
[System.Serializable]
public sealed class VariantWrapper
[<System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")>]
type VariantWrapper = class
type VariantWrapper = class
[<System.Serializable>]
type VariantWrapper = class
Public NotInheritable Class VariantWrapper
- 상속
-
VariantWrapper
- 특성
예제
다음 코드 예제에서는 interop 마샬러가 전달하는 클래스를 Object 래핑하는 방법을 VariantWrapper 보여 줍니다VT_VARIANT | VT_BYREF.
// Create an instance of an unmanged COM object.
UnmanagedComClass UnmanagedComClassInstance = new UnmanagedComClass();
// Create a string to pass to the COM object.
string helloString = "Hello World!";
// Wrap the string with the VariantWrapper class.
object var = new System.Runtime.InteropServices.VariantWrapper(helloString);
// Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(ref var);
' Create an instance of an unmanged COM object.
Dim UnmanagedComClassInstance As New UnmanagedComClass()
' Create a string to pass to the COM object.
Dim helloString As String = "Hello World!"
' Wrap the string with the VariantWrapper class.
Dim var As Object = New System.Runtime.InteropServices.VariantWrapper(helloString)
' Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(var)
설명
관리되는 형식을 해당 VARIANT 형식으로 마샬링할 때 한 수준의 간접 참조를 추가하는 것이 목적 VariantWrapper 입니다.
이 클래스를 사용하여 interop 마샬러가 전달하는 래핑 Object 을 수행할 수 있습니다.VT_VARIANT | VT_BYREF .NET Framework 버전 1.0 및 1.1에서는 VT_VARIANT | VT_BYREF 형식의 변형 데이터를 관리되지 않는 코드로 마샬링할 수 없었습니다. interop 마샬러는 관리되는 형식의 변형(예: VT_BSTR | VT_BYREFString, 또는 VT_I4 | VT_BYREFInt32)을 전달했지만 그렇지 않습니다 VT_VARIANT | VT_BYREF.
변형 형식을 사용하는 VT_VARIANT | VT_BYREF 한 가지 이점은 메서드 호출 중에 데이터 형식을 변경할 수 있다는 것입니다. 예를 들어 a를 VT_VARIANT | VT_BYREF 포함하는 variant 형식을 VT_BSTR 전달하고 메서드 호출 후를 포함하는 반환된 변형을 VT_I4 가져올 수 있습니다. COM interop 마샬러는 전달 시기와 통과 VT_BSTR | VT_BYREFVT_VARIANT | VT_BYREF시기를 알 수 없으므로 선언된 VARIANT *for 매개 변수가 포함된 BSTR 변형을 가리키므로 마샬러에 지시할 VariantWrapper수 있습니다.
초기 바인딩은 지원되지 않습니다. 호출 InvokeMember 하거나 초기 바인딩된 방식으로 호출된 디스패치 전용 인터페이스를 사용하는 경우에만 사용할 VariantWrapper 수 있습니다. C#에서는 키워드를 ref 사용하여 형식VariantWrapper의 모든 매개 변수에 대한 의미 체계를 지정 ByRef 해야 합니다. Visual Basic 모든 암시적 지연 바인딩 호출에 대해 ByRef 의미 체계가 자동으로 추가됩니다. 또한 개체의 중첩 VariantWrapper 개체 및 배열 VariantWrapper 은 지원되지 않습니다.
생성자
| Name | Description |
|---|---|
| VariantWrapper(Object) |
사용되지 않음.
지정된 Object 매개 변수에 대한 클래스의 VariantWrapper 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| WrappedObject |
사용되지 않음.
개체로 래핑된 개체를 VariantWrapper 가져옵니다. |
메서드
| Name | Description |
|---|---|
| Equals(Object) |
사용되지 않음.
지정한 개체와 현재 개체가 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
| GetHashCode() |
사용되지 않음.
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
| GetType() |
사용되지 않음.
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
| MemberwiseClone() |
사용되지 않음.
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| ToString() |
사용되지 않음.
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |