annotate Source/Patterns/MustImplementAttribute.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +0400
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 namespace BLToolkit.Patterns
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Method | AttributeTargets.Property)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 public sealed class MustImplementAttribute : Attribute
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 public MustImplementAttribute(bool implement, bool throwException, string exceptionMessage)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 _implement = implement;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 _throwException = throwException;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 _exceptionMessage = exceptionMessage;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public MustImplementAttribute(bool implement, bool throwException)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 : this(implement, throwException, null)
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 MustImplementAttribute(bool implement, string exceptionMessage)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 : this(implement, true, exceptionMessage)
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 MustImplementAttribute(bool implement)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 : this(implement, true, null)
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 MustImplementAttribute()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 : this(true, true, null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 private readonly bool _implement;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 public bool Implement
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 get { return _implement; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 private bool _throwException;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 public bool ThrowException
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 get { return _throwException; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 set { _throwException = value; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 private string _exceptionMessage;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public string ExceptionMessage
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 get { return _exceptionMessage; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 set { _exceptionMessage = value; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 /// All methods are optional and throws <see cref="NotImplementedException"/> at run tune.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public static readonly MustImplementAttribute Default = new MustImplementAttribute(false, true, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 /// All methods are optional and does nothing at run tune.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 /// Return value and all output parameters will be set to appropriate default values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public static readonly MustImplementAttribute Aggregate = new MustImplementAttribute(false, false, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 }