14
14
*/
15
15
16
16
using System . Collections . Generic ;
17
- using System . Linq ;
17
+ using MongoDB . Bson . IO ;
18
18
using Xunit . Abstractions ;
19
19
20
20
namespace MongoDB . Bson . TestHelpers
@@ -36,24 +36,6 @@ public class GuidMode : IXunitSerializable
36
36
// public static properties
37
37
public static IReadOnlyList < GuidMode > All => __all ;
38
38
39
- public static GuidMode Current
40
- {
41
- get
42
- {
43
- #pragma warning disable 618
44
- var currentMode = BsonDefaults . GuidRepresentationMode ;
45
- if ( currentMode == GuidRepresentationMode . V2 )
46
- {
47
- return new GuidMode ( currentMode , BsonDefaults . GuidRepresentation ) ;
48
- }
49
- else
50
- {
51
- return new GuidMode ( currentMode ) ;
52
- }
53
- #pragma warning restore 618
54
- }
55
- }
56
-
57
39
// public static methods
58
40
public static void Set ( GuidRepresentationMode guidRepresentationMode , GuidRepresentation guidRepresentation = GuidRepresentation . Unspecified )
59
41
{
@@ -62,9 +44,17 @@ public static void Set(GuidRepresentationMode guidRepresentationMode, GuidRepres
62
44
}
63
45
#endregion
64
46
47
+ // private fields
48
+ private BsonBinaryReaderSettings _defaultBsonBinaryReaderSettings ;
49
+ private BsonBinaryWriterSettings _defaultBsonBinaryWriterSettings ;
50
+ private BsonDocumentReaderSettings _defaultBsonDocumentReaderSettings ;
51
+ private BsonDocumentWriterSettings _defaultBsonDocumentWriterSettings ;
52
+ private JsonReaderSettings _defaultJsonReaderSettings ;
53
+ private JsonWriterSettings _defaultJsonWriterSettings ;
65
54
private GuidRepresentationMode _guidRepresentationMode ;
66
55
private GuidRepresentation _guidRepresentation ;
67
56
57
+ // constructors
68
58
public GuidMode ( )
69
59
{
70
60
_guidRepresentationMode = GuidRepresentationMode . V2 ;
@@ -77,10 +67,34 @@ public GuidMode(GuidRepresentationMode guidRepresentationMode, GuidRepresentatio
77
67
_guidRepresentation = guidRepresentation ;
78
68
}
79
69
70
+ // public properties
80
71
public GuidRepresentationMode GuidRepresentationMode => _guidRepresentationMode ;
81
72
82
73
public GuidRepresentation GuidRepresentation => _guidRepresentation ;
83
74
75
+ // public methods
76
+ public static GuidMode CaptureCurrentSettings ( )
77
+ {
78
+ #pragma warning disable 618
79
+ GuidMode settings ;
80
+ if ( BsonDefaults . GuidRepresentationMode == GuidRepresentationMode . V2 )
81
+ {
82
+ settings = new GuidMode ( BsonDefaults . GuidRepresentationMode , BsonDefaults . GuidRepresentation ) ;
83
+ }
84
+ else
85
+ {
86
+ settings = new GuidMode ( BsonDefaults . GuidRepresentationMode ) ;
87
+ }
88
+ settings . _defaultBsonBinaryReaderSettings = BsonBinaryReaderSettings . Defaults ;
89
+ settings . _defaultBsonBinaryWriterSettings = BsonBinaryWriterSettings . Defaults ;
90
+ settings . _defaultBsonDocumentReaderSettings = BsonDocumentReaderSettings . Defaults ;
91
+ settings . _defaultBsonDocumentWriterSettings = BsonDocumentWriterSettings . Defaults ;
92
+ settings . _defaultJsonReaderSettings = JsonReaderSettings . Defaults ;
93
+ settings . _defaultJsonWriterSettings = JsonWriterSettings . Defaults ;
94
+ return settings ;
95
+ #pragma warning restore 618
96
+ }
97
+
84
98
public void Deserialize ( IXunitSerializationInfo info )
85
99
{
86
100
_guidRepresentationMode = info . GetValue < GuidRepresentationMode > ( nameof ( _guidRepresentationMode ) ) ;
@@ -107,6 +121,12 @@ public void Set()
107
121
{
108
122
BsonDefaults . GuidRepresentation = _guidRepresentation ;
109
123
}
124
+ BsonBinaryReaderSettings . Defaults = _defaultBsonBinaryReaderSettings ;
125
+ BsonBinaryWriterSettings . Defaults = _defaultBsonBinaryWriterSettings ;
126
+ BsonDocumentReaderSettings . Defaults = _defaultBsonDocumentReaderSettings ;
127
+ BsonDocumentWriterSettings . Defaults = _defaultBsonDocumentWriterSettings ;
128
+ JsonReaderSettings . Defaults = _defaultJsonReaderSettings ;
129
+ JsonWriterSettings . Defaults = _defaultJsonWriterSettings ;
110
130
#pragma warning restore 618
111
131
}
112
132
0 commit comments