//protected virtual CompositeInstanceImpl CreateNewCopy( IEnumerable<Type> publicCompositeTypes, UsesContainerQuery uses )
        //{
        //   return new CompositeInstanceImpl( this._structureOwner, this._modelInfo.Model, publicCompositeTypes, uses );
        //}

        protected InstancePoolInfo <TInvocation> FindPool <TInvocation>(Type key, DictionaryQuery <Type, InstancePoolInfo <TInvocation> > dic)
        {
            InstancePoolInfo <TInvocation> pool = null;

            if (!dic.TryFindInTypeDictionarySearchSubTypes(key, out pool))
            {
                throw new InternalException("Could not find invocation base type " + key + ".");
            }
            return(pool);
        }