using System; using BLToolkit.TypeBuilder.Builders; namespace BLToolkit.Aspects { /// /// http://www.bltoolkit.net/Doc/Aspects/index.htm /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method, AllowMultiple=true)] public class ClearCacheAttribute : AbstractTypeBuilderAttribute { #region Constructors public ClearCacheAttribute() { } public ClearCacheAttribute(string methodName) { _methodName = methodName; } public ClearCacheAttribute(string methodName, params Type[] parameterTypes) { _methodName = methodName; _parameterTypes = parameterTypes; } public ClearCacheAttribute(Type declaringType, string methodName, params Type[] parameterTypes) { _declaringType = declaringType; _methodName = methodName; _parameterTypes = parameterTypes; } public ClearCacheAttribute(Type declaringType) { _declaringType = declaringType; } readonly Type _declaringType; readonly string _methodName; readonly Type[] _parameterTypes; #endregion public override IAbstractTypeBuilder TypeBuilder { get { return new Builders.ClearCacheAspectBuilder(_declaringType, _methodName, _parameterTypes); } } } }