public ChangeStoreSelector(ChangeStore durableChangeStore, NullChangeStore nullChangeStore)
        {
            Contract.Requires(durableChangeStore != null);
            Contract.Requires(nullChangeStore != null);

            this.durableChangeStore = durableChangeStore;
            this.nullChangeStore = nullChangeStore;
        }
        public MessageCacheFactory(
            ChangeStoreSelector changeStoreSelector, 
            ISystemTime systemTime,
            NullChangeStore nullChangeStore,
            ICheckpointStrategy checkPointStrategy)
        {
            Contract.Requires(changeStoreSelector != null);
            Contract.Requires(systemTime != null);
            Contract.Requires(nullChangeStore != null);

            this.changeStoreSelector = changeStoreSelector;
            this.systemTime = systemTime;
            this.nullChangeStore = nullChangeStore;
            this.checkPointStrategy = checkPointStrategy;
        }