¿Qué es el alojamiento?

El alojamiento es un concepto especializado de .NET. Promueve un nuevo concepto de programación, por lo que podemos considerar completamente "alojamiento" como ".NET". Las aplicaciones C desencadenadas por el concepto de alojamiento incluyen tres componentes: código administrado, datos administrados y clases administradas:

(1) Código administrado: el entorno .Net proporciona muchos servicios de tiempo de ejecución centrales (RUNTIME), como excepciones. políticas de manejo y seguridad. Para utilizar estos servicios, se debe proporcionar algún código de información (metadatos) al entorno en ejecución. Este código es código administrado. Todo C#, VB.NET y JScript.NET se administran de forma predeterminada, pero Visual C no se administra de forma predeterminada. Debe utilizar la opción de línea de comando (/CLR) en el compilador para generar código administrado.

(2) Datos administrados: Estrechamente relacionados con el código administrado están los datos administrados. Los datos administrados son datos que asigna y publica el recolector de basura que se ejecuta en el lenguaje público. De forma predeterminada, los datos de C#, Visual Basic y JScript.NET son datos administrados. Sin embargo, los datos de C# se pueden marcar como no administrados mediante el uso de palabras clave especiales. Los datos de Visual C no se administran de forma predeterminada, incluso cuando se utiliza el modificador /CLR.

(3) Clases administradas: aunque los datos de Visual C no están administrados de forma predeterminada, cuando se usa la extensión administrada de C, puede usar la palabra clave "__gc" para marcar una clase como clase administrada. Como sugiere el nombre, significa que la memoria de la instancia de clase es administrada por el recolector de basura. Además, una clase administrada también puede convertirse en miembro del marco .NET. La ventaja es que puede interoperar correctamente con clases escritas en otros lenguajes. Por ejemplo, una clase C administrada puede heredar de una clase de Visual Basic, etc. Pero también existen algunas restricciones, como que las clases administradas solo pueden heredar de una clase base. Cabe señalar que en aplicaciones C administradas se pueden utilizar clases administradas y no administradas. La clase no administrada aquí no se refiere a la clase C estándar, sino a una clase que usa la palabra clave __nogc en el lenguaje C administrado.