Mercurial > pub > bltoolkit
diff Source/Aspects/ClearCacheAttribute.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/Aspects/ClearCacheAttribute.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,53 @@ +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); } + } + } +}