Dirección de memoria de un objeto en C #
Tengo una función escrita hace algún tiempo (para .NET 3.5), y ahora que he actualizado a 4.0
No puedo conseguir que funcione.
La función es:
public static class MemoryAddress
{
public static string Get(object a)
{
GCHandle handle = GCHandle.Alloc(a, GCHandleType.Pinned);
IntPtr pointer = GCHandle.ToIntPtr(handle);
handle.Free();
return "0x" + pointer.ToString("X");
}
}
Ahora, cuando lo llamo - MemoryAddress.Get (auto nuevo ("azul"))
public class Car
{
public string Color;
public Car(string color)
{
Color = color;
}
}
Me sale el error:
El objeto contiene datos no primitivos o no modificables.
¿Por qué ya no funciona?
¿Cómo puedo obtener ahora la dirección de memoria de los objetos administrados?