Mercurial > pub > bltoolkit
comparison Source/Aspects/InterceptorAttribute.cs @ 0:f990fcb411a9
Копия текущей версии из github
| author | cin |
|---|---|
| date | Thu, 27 Mar 2014 21:46:09 +0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f990fcb411a9 |
|---|---|
| 1 using System; | |
| 2 | |
| 3 using BLToolkit.TypeBuilder.Builders; | |
| 4 | |
| 5 namespace BLToolkit.Aspects | |
| 6 { | |
| 7 [AttributeUsage( | |
| 8 AttributeTargets.Class | | |
| 9 AttributeTargets.Interface | | |
| 10 AttributeTargets.Property | | |
| 11 AttributeTargets.Method, | |
| 12 AllowMultiple=true)] | |
| 13 public class InterceptorAttribute : AbstractTypeBuilderAttribute | |
| 14 { | |
| 15 public InterceptorAttribute(Type interceptorType, InterceptType interceptType) | |
| 16 : this(interceptorType, interceptType, null, TypeBuilderConsts.Priority.Normal) | |
| 17 { | |
| 18 } | |
| 19 | |
| 20 public InterceptorAttribute(Type interceptorType, InterceptType interceptType, int priority) | |
| 21 : this(interceptorType, interceptType, null, priority) | |
| 22 { | |
| 23 } | |
| 24 | |
| 25 public InterceptorAttribute(Type interceptorType, InterceptType interceptType, string parameters) | |
| 26 : this(interceptorType, interceptType, parameters, TypeBuilderConsts.Priority.Normal) | |
| 27 { | |
| 28 } | |
| 29 | |
| 30 public InterceptorAttribute( | |
| 31 Type interceptorType, InterceptType interceptType, string configString, int priority) | |
| 32 : this(interceptorType, interceptType, configString, priority, false) | |
| 33 { | |
| 34 } | |
| 35 | |
| 36 public InterceptorAttribute( | |
| 37 Type interceptorType, InterceptType interceptType, string configString, int priority, bool localInterceptor) | |
| 38 { | |
| 39 if (interceptorType == null && interceptType != 0) | |
| 40 throw new ArgumentNullException("interceptorType"); | |
| 41 | |
| 42 _interceptorType = interceptorType; | |
| 43 _interceptType = interceptType; | |
| 44 _configString = configString; | |
| 45 _priority = priority; | |
| 46 _localInterceptor = localInterceptor; | |
| 47 } | |
| 48 | |
| 49 private readonly Type _interceptorType; | |
| 50 public virtual Type InterceptorType | |
| 51 { | |
| 52 get { return _interceptorType; } | |
| 53 } | |
| 54 | |
| 55 private readonly InterceptType _interceptType; | |
| 56 public virtual InterceptType InterceptType | |
| 57 { | |
| 58 get { return _interceptType; } | |
| 59 } | |
| 60 | |
| 61 private readonly int _priority; | |
| 62 public virtual int Priority | |
| 63 { | |
| 64 get { return _priority; } | |
| 65 } | |
| 66 | |
| 67 private readonly string _configString; | |
| 68 public virtual string ConfigString | |
| 69 { | |
| 70 get { return _configString; } | |
| 71 } | |
| 72 | |
| 73 private readonly bool _localInterceptor; | |
| 74 public virtual bool LocalInterceptor | |
| 75 { | |
| 76 get { return _localInterceptor; } | |
| 77 } | |
| 78 | |
| 79 public override IAbstractTypeBuilder TypeBuilder | |
| 80 { | |
| 81 get | |
| 82 { | |
| 83 return new Builders.InterceptorAspectBuilder( | |
| 84 InterceptorType, InterceptType, ConfigString, Priority, LocalInterceptor); | |
| 85 } | |
| 86 } | |
| 87 } | |
| 88 } |
