/// <summary>
        /// Apply this <see cref="Spring.Objects.Factory.Config.IObjectPostProcessor"/> to the
        /// given new object instance <i>after</i> any object initialization callbacks.
        /// </summary>
        /// <remarks>
        /// <p>
        /// Registers the supplied <paramref name="instance"/> with the
        /// <see cref="Spring.Aop.Framework.Adapter.GlobalAdvisorAdapterRegistry"/>
        /// singleton if it is an <see cref="Spring.Aop.Framework.Adapter.IAdvisorAdapter"/>
        /// instance.
        /// </p>
        /// </remarks>
        /// <param name="instance">
        /// The new object instance.
        /// </param>
        /// <param name="objectName">
        /// The name of the object.
        /// </param>
        /// <returns>
        /// The object instance to use, either the original or a wrapped one.
        /// </returns>
        /// <exception cref="Spring.Objects.ObjectsException">
        /// In case of errors.
        /// </exception>
        public virtual object PostProcessAfterInitialization(object instance, string objectName)
        {
            IAdvisorAdapter adapter = instance as IAdvisorAdapter;

            if (adapter != null)
            {
                GlobalAdvisorAdapterRegistry.Instance.RegisterAdvisorAdapter(adapter);
            }
            return(instance);
        }
 /// <summary>
 /// Register the given <see cref="Spring.Aop.Framework.Adapter.IAdvisorAdapter"/>.
 /// </summary>
 /// <param name="adapter">
 /// An <see cref="Spring.Aop.Framework.Adapter.IAdvisorAdapter"/> that
 /// understands the particular advisor and advice types.
 /// </param>
 public virtual void RegisterAdvisorAdapter(IAdvisorAdapter adapter)
 {
     this.adapters.Add(adapter);
 }
 /// <summary>
 /// Register the given <see cref="Oragon.Spring.Aop.Framework.Adapter.IAdvisorAdapter"/>.
 /// </summary>
 /// <param name="adapter">
 /// An <see cref="Oragon.Spring.Aop.Framework.Adapter.IAdvisorAdapter"/> that
 /// understands the particular advisor and advice types.
 /// </param>
 public virtual void RegisterAdvisorAdapter(IAdvisorAdapter adapter)
 {
     this.adapters.Add(adapter);
 }