Subclasses must implement the abstract FindCandidateAdvisors() method to return a list of Advisors applying to any object. Subclasses can also override the inherited ShouldSkip() method to exclude certain objects from autoproxying, but they must be careful to invoke the ShouldSkip() method of this class, which tries to avoid circular reference problems and infinite loops.
Advisors or advices requiring ordering should implement the Ordered interface. This class sorts advisors by Ordered order value. Advisors that don't implement the Ordered interface will be considered to be unordered, and will appear at the end of the advisor chain in undefined order.