virtual public bool IsRead(int index) { if (!CanRead(index)) { return true; } //If value is changed or value is not read yet. return !(DirtyAttributes.ContainsKey(index) || GetLastReadTime(index) == DateTime.MinValue); }