Make UndoTaskSnapshot immutable by denying access to TaskInfo attribute. (if you get the taskInfo, you only get a copy of it, not the original.)