В моето приложение съхранявам всички данни в статичен списък AllData, който е наследен от;
public class GenericList<T> : BindingList<T>, IList<T>
Зададох промените на потребителя в избрания елемент от AllData и проблемът ми е свързан с анулирането на промените. Ако потребителят отмени промените, извличам отново всички данни от базата данни. Това не е полезно решение; отнема време, създава нова db връзка и т.н.
Мисля, че вече имам стари ценности преди промените. Мога да архивирам първите стойности и ако потребителят отмени промените, да възстановя архивираните стойности. Проблемът идва тук; Опитах се да клонирам избрания елемент от AllData чрез клас ObjectCopier
public static T Clone<T>(T source)
, и получи грешка като
Типът „Клас XYZ“ не е маркиран като сериализираем.
Да, имам няколко сериализирани класа, а другите не са сериализирани. Избраният от AllData елемент, който се опитвам да клонирам, съдържа всички типове данни, които създадох.
Трябва ли да сериализирам всички класове? Ако отговорът е да; може ли това да причини проблеми (сигурност, производителност и т.н.)? или има някакъв полезен метод за отмяна на операция?
undo
функция, погледнете CSLA рамката на Rockford Lhotka. - person Robert Harvey   schedule 28.05.2013