SpanMarshaller<T,TUnmanagedElement> Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Важно!
Этот API несовместим с CLS.
Поддерживает маршалирование из управляемого Span<T> значения в непрерывный собственный массив неуправляемых значений элементов.
generic <typename T, typename TUnmanagedElement>
where TUnmanagedElement : value classpublic ref class SpanMarshaller abstract sealed
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshaller]
[System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.Default, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))]
[System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.ManagedToUnmanagedIn, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>+ManagedToUnmanagedIn))]
public static class SpanMarshaller<T,TUnmanagedElement> where TUnmanagedElement : struct
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshaller>]
[<System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.Default, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))>]
[<System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.ManagedToUnmanagedIn, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>+ManagedToUnmanagedIn))>]
type SpanMarshaller<'T, 'UnmanagedElement (requires 'UnmanagedElement : struct)> = class
Public Class SpanMarshaller(Of T, TUnmanagedElement)
Параметры типа
- T
Тип управляемого элемента диапазона.
- TUnmanagedElement
Неуправляемый тип для элементов диапазона.
- Наследование
-
SpanMarshaller<T,TUnmanagedElement>
- Атрибуты
Комментарии
Класс, Span<T> маршалированные с помощью этого маршализатора GetReference<T>(Span<T>), будет соответствовать семантике .
В частности, этот маршализатор передает не-значениеnull
для диапазона нулевой длины, если диапазон был создан с не-значениемnull
.
Методы
AllocateContainerForManagedElements(TUnmanagedElement*, Int32) |
Выделяет место для хранения управляемых элементов. |
AllocateContainerForUnmanagedElements(Span<T>, Int32) |
Выделяет пространство для хранения неуправляемых элементов. |
Free(TUnmanagedElement*) |
Освобождает выделенную неуправляемую память. |
GetManagedValuesDestination(Span<T>) |
Возвращает диапазон пространства, в котором должны храниться элементы управляемой коллекции. |
GetManagedValuesSource(Span<T>) |
Возвращает диапазон элементов управляемой коллекции. |
GetUnmanagedValuesDestination(TUnmanagedElement*, Int32) |
Возвращает диапазон пространства, в котором должны храниться неуправляемые элементы коллекции. |
GetUnmanagedValuesSource(TUnmanagedElement*, Int32) |
Возвращает диапазон элементов собственной коллекции. |