/// <summary> /// Injects the system's dependencies. /// </summary> internal void InjectDependencies() { Factory = new MementoFactory( new PropertyAnalyzer(), new CollectionAnalyzer() ); }
internal PropertyMemento(object owner, bool cascade, IPropertyAdapter prop, IMementoFactory factory) { Property = prop; Owner = Property.IsStatic ? null : owner; SavedValue = Property.GetValue(owner); Factory = factory; Children = new List <ICompositeMemento>(); if (cascade) { GenerateChildren(); } }
public CollectionMemento(ICollectionData data, IMementoFactory factory) { _factory = factory; _collection = new DynamicInvoker(data.Collection); _collectionType = data.Collection.GetType(); _cascade = data.Cascade; //initialize array var collectionCount = _collection.Count; _collectionElementType = data.ElementType; _copy = Array.CreateInstance(_collectionElementType, collectionCount); SaveState(); //generate children Children = new List <ICompositeMemento>(); if (_cascade) { GenerateChildren(); } }
internal PropertyMemento(IPropertyData data, IMementoFactory factory) : this(data.Owner, data.Cascade, data.PropertyAdapter, factory) { }