Endereço de memória de um objeto em C #
Eu tenho uma função escrita há algum tempo (para .NET 3.5) e agora que atualizei para 4.0
Eu não posso fazê-lo funcionar.
A função é:
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");
}
}
Agora, quando eu chamo - MemoryAddress.Get (new Car ("blue"))
public class Car
{
public string Color;
public Car(string color)
{
Color = color;
}
}
Eu recebo o erro:
O objeto contém dados não primitivos ou não-blittable.
Por que não funciona mais?
Como posso obter agora o endereço de memória dos objetos gerenciados?