Exemple #1
0
 /// <summary>
 /// Injects the system's dependencies.
 /// </summary>
 internal void InjectDependencies()
 {
     Factory = new MementoFactory(
         new PropertyAnalyzer(),
         new CollectionAnalyzer()
         );
 }
Exemple #2
0
        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();
            }
        }
Exemple #4
0
 internal PropertyMemento(IPropertyData data, IMementoFactory factory) : this(data.Owner, data.Cascade, data.PropertyAdapter, factory)
 {
 }