annotate Source/Aspects/InterceptorAttribute.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.TypeBuilder.Builders;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 namespace BLToolkit.Aspects
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 [AttributeUsage(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 AttributeTargets.Class |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 AttributeTargets.Interface |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 AttributeTargets.Property |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 AttributeTargets.Method,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 AllowMultiple=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public class InterceptorAttribute : AbstractTypeBuilderAttribute
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public InterceptorAttribute(Type interceptorType, InterceptType interceptType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 : this(interceptorType, interceptType, null, TypeBuilderConsts.Priority.Normal)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public InterceptorAttribute(Type interceptorType, InterceptType interceptType, int priority)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 : this(interceptorType, interceptType, null, priority)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public InterceptorAttribute(Type interceptorType, InterceptType interceptType, string parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 : this(interceptorType, interceptType, parameters, TypeBuilderConsts.Priority.Normal)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public InterceptorAttribute(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 Type interceptorType, InterceptType interceptType, string configString, int priority)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 : this(interceptorType, interceptType, configString, priority, false)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 public InterceptorAttribute(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 Type interceptorType, InterceptType interceptType, string configString, int priority, bool localInterceptor)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 if (interceptorType == null && interceptType != 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 throw new ArgumentNullException("interceptorType");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 _interceptorType = interceptorType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 _interceptType = interceptType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 _configString = configString;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 _priority = priority;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 _localInterceptor = localInterceptor;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 private readonly Type _interceptorType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 public virtual Type InterceptorType
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 get { return _interceptorType; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 private readonly InterceptType _interceptType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 public virtual InterceptType InterceptType
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 get { return _interceptType; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 private readonly int _priority;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public virtual int Priority
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 get { return _priority; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 private readonly string _configString;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public virtual string ConfigString
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 get { return _configString; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 private readonly bool _localInterceptor;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 public virtual bool LocalInterceptor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 get { return _localInterceptor; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 public override IAbstractTypeBuilder TypeBuilder
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 get
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 return new Builders.InterceptorAspectBuilder(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 InterceptorType, InterceptType, ConfigString, Priority, LocalInterceptor);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 }