// ------------------------------------------------------------
        // Inject
        // ------------------------------------------------------------

        /// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        public void Inject(object instance)
        {
            if (instance == null)
            {
                throw new ArgumentNullException("instance");
            }

            var metadata = metadataFactory.GetMetadata(instance.GetType());
            var binding  = new Binding(instance.GetType());

            for (var i = 0; i < injectors.Length; i++)
            {
                injectors[i].Inject(this, binding, metadata, instance);
            }
        }