Compartir a través de


serializar_as

Este método convierte los datos entre los entornos nativo y administrado.

Sintaxis

To_Type marshal_as<To_Type>(
   From_Type input
);

Parámetros

input
[in] Valor que desea serializar para una variable To_Type.

Valor devuelto

Una variable de tipo To_Type que es el valor convertido de input.

Comentarios

Este método es una manera simplificada de convertir datos entre los tipos nativos y administrados. Para determinar qué tipos de datos se admiten, vea Información general de la serialización en C++. Algunas conversiones de datos requieren un contexto. Puede convertir los tipos de datos mediante la clase marshal_context.

Si intenta serializar un par de tipos de datos que no son compatibles, marshal_as generará un error C4996 en tiempo de compilación. Lea el mensaje proporcionado con el error para obtener más información. El error C4996 se puede generar para algunas funciones, aparte de las que están en desuso. Un ejemplo de esto consiste en intentar para serializar un par de tipos de datos que no se admiten.

La biblioteca de cálculo de referencias se compone de varios archivos de encabezado. Cualquier conversión requiere solo un archivo, pero puede incluir archivos adicionales si los necesita para otras conversiones. Para ver qué conversiones están asociadas con qué archivos, consulte la tabla de Marshaling Overview. Independientemente de la conversión que desee hacer, el requisito de espacio de nombres siempre está en vigor.

Se genera System::ArgumentNullException(_EXCEPTION_NULLPTR) si el parámetro de entrada es null.

Ejemplo

Este ejemplo calcula las referencias de const char* para un tipo de variable System::String.

// marshal_as_test.cpp
// compile with: /clr
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

int main() {
   const char* message = "Test String to Marshal";
   String^ result;
   result = marshal_as<String^>( message );
   return 0;
}

Requisitos

Archivo de encabezado:<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h> o <msclr\marshal_atl.h>

Espacio de nombres: msclr::interop

Consulte también

Información general de la serialización en C++
marshal_context (Clase)