Mercurial > pub > bltoolkit
comparison Source/Patterns/MustImplementAttribute.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 namespace BLToolkit.Patterns | |
4 { | |
5 [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Method | AttributeTargets.Property)] | |
6 public sealed class MustImplementAttribute : Attribute | |
7 { | |
8 public MustImplementAttribute(bool implement, bool throwException, string exceptionMessage) | |
9 { | |
10 _implement = implement; | |
11 _throwException = throwException; | |
12 _exceptionMessage = exceptionMessage; | |
13 } | |
14 | |
15 public MustImplementAttribute(bool implement, bool throwException) | |
16 : this(implement, throwException, null) | |
17 { | |
18 } | |
19 | |
20 public MustImplementAttribute(bool implement, string exceptionMessage) | |
21 : this(implement, true, exceptionMessage) | |
22 { | |
23 } | |
24 | |
25 public MustImplementAttribute(bool implement) | |
26 : this(implement, true, null) | |
27 { | |
28 } | |
29 | |
30 public MustImplementAttribute() | |
31 : this(true, true, null) | |
32 { | |
33 } | |
34 | |
35 private readonly bool _implement; | |
36 public bool Implement | |
37 { | |
38 get { return _implement; } | |
39 } | |
40 | |
41 private bool _throwException; | |
42 public bool ThrowException | |
43 { | |
44 get { return _throwException; } | |
45 set { _throwException = value; } | |
46 } | |
47 | |
48 private string _exceptionMessage; | |
49 public string ExceptionMessage | |
50 { | |
51 get { return _exceptionMessage; } | |
52 set { _exceptionMessage = value; } | |
53 } | |
54 | |
55 /// <summary> | |
56 /// All methods are optional and throws <see cref="NotImplementedException"/> at run tune. | |
57 /// </summary> | |
58 public static readonly MustImplementAttribute Default = new MustImplementAttribute(false, true, null); | |
59 | |
60 /// <summary> | |
61 /// All methods are optional and does nothing at run tune. | |
62 /// Return value and all output parameters will be set to appropriate default values. | |
63 /// </summary> | |
64 public static readonly MustImplementAttribute Aggregate = new MustImplementAttribute(false, false, null); | |
65 } | |
66 } |