- У меня есть класс X, и его объект objX, и я устанавливаю для него свойства и сохраняю его в сеансе.
- Создайте еще один объект objY того же типа X. Скопированный контент objX в objY как: objY = objX.
- Теперь, когда я изменяю свойства objX, он изменяется в objY.
- Даже если я как objY = (X) сессии [ «objX»], это дает такой же, как objX
Почему это происходит, как избежать этого? Как этого избежать?Сохранение объекта класса в сеансе, это ссылочный тип?
Оставьте сеансы и попробуйте значительно упрощенную версию: 'class X {public int a; } 'и' objX = new X(); objY = objX; objY.a = 0;/* Выход objX.a */' – delnan
[решаемые] Ниже раствор - Наследуйте "ICloneable" - Реализация интерфейса: ' #region ICloneable Пользователи общественный объект Clone() { MemoryStream мс = новое MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize (ms, this); ms.Position = 0; объект obj = bf.Deserialize (ms); ms.Close(); return obj as AdminSecurityGroup; } #endregion - 'code' Session [" mgo "] = ((AdminSecurityGroup) mg) .Clone(); 'code' – Avinash
Не ставьте вопрос, который разрешен в названии. Просто отметьте ответ как ответ. –