view Source/Aspects/OverloadAttribute.cs @ 5:f7d63a092920

Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author cin
date Tue, 10 Mar 2015 16:02:11 +0300
parents f990fcb411a9
children
line wrap: on
line source

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