Spring.NET 1.3.0 RC1 for .NET 2.0 API Reference

AbstractAutoProxyCreator Class

ObjectPostProcessor implementation that wraps a group of objects with AOP proxies that delegate to the given interceptors before invoking the object itself.

For a list of all members of this type, see AbstractAutoProxyCreator Members .


[Visual Basic]
Public MustInherit Class AbstractAutoProxyCreator
    Inherits ProxyConfig
    Implements IInstantiationAwareObjectPostProcessor, IObjectPostProcessor, IObjectFactoryAware, IOrdered
public abstract class AbstractAutoProxyCreator : ProxyConfig, IInstantiationAwareObjectPostProcessor, IObjectPostProcessor, IObjectFactoryAware, IOrdered

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.


This class distinguishes between "common" interceptors: shared for all proxies it creates, and "specific" interceptors: unique per object instance. There need not be any common interceptors. If there are, they are set using the interceptorNames property. As with ProxyFactoryObject, interceptors names in the current factory are used rather than object references to allow correct handling of prototype advisors and interceptors: for example, to support stateful mixins. Any advice type is supported for "interceptorNames" entries.

Such autoproxying is particularly useful if there's a large number of objects that need to be wrapped with similar proxies, i.e. delegating to the same interceptors. Instead of x repetitive proxy definitions for x target objects, you can register one single such post processor with the object factory to achieve the same effect.

Subclasses can apply any strategy to decide if a object is to be proxied, e.g. by type, by name, by definition details, etc. They can also return additional interceptors that should just be applied to the specific object instance. The default concrete implementation is ObjectNameAutoProxyCreator, identifying the objects to be proxied via a list of object names.

Any number of TargetSourceCreator implementations can be used with any subclass, to create a custom target source - for example, to pool prototype objects. Autoproxying will occur even if there is no advice if a TargetSourceCreator specifies a custom TargetSource. If there are no TargetSourceCreators set, or if none matches, a SingletonTargetSource will be used by default to wrap the object to be autoproxied.


Namespace: Spring.Aop.Framework.AutoProxy

Assembly: Spring.Aop (in Spring.Aop.dll)

See Also

AbstractAutoProxyCreator Members | Spring.Aop.Framework.AutoProxy Namespace | InterceptorNames | ObjectNameAutoProxyCreator