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

  Source.Aspects.AsyncAttribute.cs

 
using System;

using BLToolkit.TypeBuilder.Builders;

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