0
|
1 using System;
|
|
2 using BLToolkit.TypeBuilder.Builders;
|
|
3
|
|
4 namespace BLToolkit.Aspects
|
|
5 {
|
|
6 /// <summary>
|
|
7 /// http://www.bltoolkit.net/Doc/Aspects/index.htm
|
|
8 /// </summary>
|
|
9 [AttributeUsage(AttributeTargets.Method)]
|
|
10 public sealed class OverloadAttribute : AbstractTypeBuilderAttribute
|
|
11 {
|
|
12 private readonly string _overloadedMethodName;
|
|
13 private readonly Type[] _parameterTypes;
|
|
14
|
|
15 public OverloadAttribute()
|
|
16 {
|
|
17 }
|
|
18
|
|
19 public OverloadAttribute(string overloadedMethodName): this(overloadedMethodName, null)
|
|
20 {
|
|
21 }
|
|
22
|
|
23 public OverloadAttribute(params Type[] parameterTypes): this(null, parameterTypes)
|
|
24 {
|
|
25 }
|
|
26
|
|
27 public OverloadAttribute(string overloadedMethodName, params Type[] parameterTypes)
|
|
28 {
|
|
29 _overloadedMethodName = overloadedMethodName;
|
|
30 _parameterTypes = parameterTypes;
|
|
31 }
|
|
32
|
|
33 public override IAbstractTypeBuilder TypeBuilder
|
|
34 {
|
|
35 get { return new Builders.OverloadAspectBuilder(_overloadedMethodName, _parameterTypes); }
|
|
36 }
|
|
37 }
|
|
38 } |