Не обычно да, не возможно ... нет ... см. Выше
я есть функция, написанная некоторое время назад (для .NET 3.5), и теперь, когда я обновился до 4.0
Я не могу заставить его работать.
Функция:
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");
}
}
Теперь, когда я это называю - MemoryAddress.Get (новый автомобиль («синий»))
public class Car
{
public string Color;
public Car(string color)
{
Color = color;
}
}
Я получаю ошибку:
Объект содержит непримитивные или неблизкие данные.
Почему это больше не работает?
Как я могу теперь получить адрес памяти управляемых объектов?