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); }
+		}
+	}
+}