Business Logic Toolkit for .NET
www.bltoolkit.net
|  Home   |  Download   |  Documentation   |  Discussions   |  License   |

  Source.Aspects.ClearCacheAttribute.cs

 
using System;

using BLToolkit.TypeBuilder.Builders;

namespace BLToolkit.Aspects
{
    /// <summary>
    /// http://www.bltoolkit.net/Doc/Aspects/index.htm
    /// </summary>
    [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); }
        }
    }
}
 
© 2010 www.bltoolkit.net
support@bltoolkit.net