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