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)