using System; using BLToolkit.TypeBuilder.Builders; namespace BLToolkit.Aspects { /// /// http://www.bltoolkit.net/Doc/Aspects/index.htm /// [AttributeUsage(AttributeTargets.Method)] public sealed class AsyncAttribute : AbstractTypeBuilderAttribute { private readonly string _targetMethodName; private readonly Type[] _parameterTypes; public AsyncAttribute() { } public AsyncAttribute(string targetMethodName): this(targetMethodName, null) { } public AsyncAttribute(params Type[] parameterTypes): this(null, parameterTypes) { } public AsyncAttribute(string targetMethodName, params Type[] parameterTypes) { _targetMethodName = targetMethodName; _parameterTypes = parameterTypes; } public override IAbstractTypeBuilder TypeBuilder { get { return new Builders.AsyncAspectBuilder(_targetMethodName, _parameterTypes); } } } }