Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De meeste gegevenstypen hebben een algemene weergave in zowel beheerd als onbeheerd geheugen en vereisen geen speciale verwerking door de interop marshaller. Deze typen worden blittable-typen genoemd omdat ze geen conversie vereisen wanneer ze worden doorgegeven tussen beheerde en onbeheerde code.
Structuren die worden geretourneerd door aanroepen op het platform, moeten belichte typen zijn. Platform-aanroepen bieden geen ondersteuning voor niet-blitbare structuren als retourtypen.
De volgende typen uit de System naamruimte zijn blittable-typen:
- System.Byte
- System.SByte
- System.Int16
- System.UInt16
- System.Int32
- System.UInt32
- System.Int64
- System.UInt64
- System.IntPtr
- System.UIntPtr
- System.Single
- System.Double
De volgende complexe typen zijn ook belichte typen:
- Eendimensionale matrices van blittable primitieve typen, zoals een matrix met gehele getallen. Een type dat een variabele matrix van blittable-typen bevat, is echter niet zelf blittable.
- Opgemaakte waardetypen die alleen belichte typen bevatten (en klassen als ze zijn geformatteerd als opgemaakte typen). Zie Standaard marshalling voor waardetypen voor waardetypen voor meer informatie over opgemaakte waardetypen.
Objectverwijzingen zijn niet belicht. Daarnaast is een array met verwijzingen naar objecten die op zich blittable zijn, niet blittable. U kunt bijvoorbeeld een structuur definiëren die blittable is, maar u kunt geen blittable type definiëren dat een array van verwijzingen naar die structuren bevat.
Als optimalisatie worden matrices van blittable primitieve typen en klassen die alleen belichte leden bevatten vastgemaakt in plaats van te kopiëren tijdens marshalling. Deze typen kunnen worden ge marshalld als In/Out parameters wanneer de beller en de beller zich in hetzelfde appartement bevinden. Deze typen zijn echter eigenlijk marshalled als In parameters, en u moet de InAttribute en OutAttribute kenmerken toepassen als u het argument wilt marshalen als een In/Out-parameter.
Voor sommige beheerde gegevenstypen is een andere weergave in een niet-beheerde omgeving vereist. Deze niet-blitbare gegevenstypen moeten worden geconverteerd naar een formulier dat kan worden ge marshalld. Beheerde tekenreeksen zijn bijvoorbeeld niet-blitbare typen, omdat ze moeten worden geconverteerd naar tekenreeksobjecten voordat ze kunnen worden marshalled.
De volgende tabel bevat niet-blitbare typen uit de System naamruimte. Gedelegeerden, die gegevensstructuren zijn die verwijzen naar een statische methode of een klasse-exemplaar, zijn ook niet-blitbaar.
| Niet-blitbaar type | Beschrijving |
|---|---|
| System.Array | Converteert naar een C-stijlmatrix of een SAFEARRAY. |
| System.Boolean | Converteert naar een waarde van 1, 2 of 4 bytes met true als 1 of -1. |
| System.Char | Converteert naar een Unicode- of ANSI-teken. |
| System.Class | Converteert naar een klasse-interface. |
| System.Object- | Converteert naar een variant of een interface. |
| System.String- | Converteert naar een tekenreekseindtekening in een null-verwijzing of naar een BSTR. |
| System.ValueType | Converteert naar een structuur met een vaste geheugenindeling. |
| T[] | Converteert naar een C-stijlmatrix of een SAFEARRAY. |
Klasse- en objecttypen worden alleen ondersteund door COM-interoperabiliteit.