/// <summary>
        /// Creates a MemoryInstanceMemento that represents a reference to the default instance
        /// of a plugin type.
        /// </summary>
        /// <returns></returns>
        public static MemoryInstanceMemento CreateDefaultInstanceMemento()
        {
            var memento = new MemoryInstanceMemento();
            memento._referenceKey = string.Empty;
            memento._isReference = true;

            return memento;
        }
        /// <summary>
        /// Creates an instance of MemoryInstanceMemento that represents a reference to another
        /// instance.
        /// </summary>
        /// <param name="referenceKey">The referenced instance key to another instance</param>
        /// <returns></returns>
        public static MemoryInstanceMemento CreateReferencedInstanceMemento(string referenceKey)
        {
            var memento = new MemoryInstanceMemento();
            memento._referenceKey = referenceKey;
            memento._isReference = true;

            return memento;
        }