diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs index fb9969dd..66b8a6cd 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs @@ -244,11 +244,15 @@ namespace Spring.Aop.Framework.AutoProxy } /// - /// Extension hook that subclasses can override to register additional advisors, + /// Extension hook that subclasses can override to add additional advisors for the given object, /// given the sorted advisors obtained to date.
/// The default implementation does nothing.
/// Typically used to add advisors that expose contextual information required by some of the later advisors. ///
+ /// + /// The advisor list passed into this method is already reduced to advisors applying to this particular object. + /// If you want to register additional common advisor candidates, override . + /// /// Advisors that have already been identified as applying to a given object /// the type of the object to be advised /// the name of the object to be advised diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs index 4597be73..0208e491 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs @@ -165,8 +165,12 @@ namespace Spring.Aop.Framework.AutoProxy /// the name of the object to be advised protected virtual bool IsEligibleObject(string advisorName, Type objectType, string objectName ) { - return this.ObjectFactory.ContainsObjectDefinition(advisorName) - && this.ObjectFactory.GetObjectDefinition(advisorName).Role != ObjectRole.ROLE_INFRASTRUCTURE; + bool containsObjectDefinition = this.ObjectFactory.ContainsObjectDefinition(advisorName); + if (containsObjectDefinition) + { + return this.ObjectFactory.GetObjectDefinition(advisorName).Role != ObjectRole.ROLE_INFRASTRUCTURE; + } + return this.ObjectFactory.ContainsObject(advisorName); } } } \ No newline at end of file