¿Cómo maneja la memoria administrada .net los tipos de valores dentro de los objetos?

public class MyClass
{
    public int Age;
    public int ID;
}

public void MyMethod() 
{
    MyClass m = new MyClass();
    int newID;
}

A mi entender, lo siguiente es cierto:

La referencia m vive en la pila y queda fuera de alcance cuando sale MyMethod ().El tipo de valor newID vive en la pila y queda fuera de alcance cuando MyMethod () sale.El objeto creado por el nuevo operador vive en el montón y el GC lo puede recuperar cuando MyMethod () sale, suponiendo que no exista otra referencia al objeto.

Aquí está mi pregunta:

¿Los tipos de valor dentro de los objetos viven en la pila o en el montón?¿Son preocupantes los tipos de valor de boxing / unboxing en un objeto?¿Hay recursos detallados, pero comprensibles, sobre este tema?

Lógicamente, creo que los tipos de valores dentro de las clases estarían en el montón, pero no estoy seguro de si tienen que estar encuadrados para llegar allí.

Editar:

Lectura sugerida para este tema:

CLR Vía C # por Jeffrey RichterEssential .NET de Don Box

Respuestas a la pregunta(6)

Su respuesta a la pregunta