@@ -97,7 +97,7 @@ public bool RemoveEventHandler<T>(string eventName, EventHandler<T> eventHandler
97
97
{
98
98
var p = ( ( EventProxy < T > ) eventProxy ) ;
99
99
100
- if ( p . RemoveHandler ( eventHandler ) )
100
+ if ( p . RemoveHandler ( eventHandler ) )
101
101
{
102
102
return ! eventHandlers . TryRemove ( eventName , out _ ) ;
103
103
}
@@ -218,7 +218,7 @@ public void Dispose()
218
218
var events = eventHandlers . Values ;
219
219
eventHandlers . Clear ( ) ;
220
220
221
- foreach ( var evt in events )
221
+ foreach ( var evt in events )
222
222
{
223
223
evt . Dispose ( ) ;
224
224
}
@@ -257,21 +257,21 @@ void IDevToolsMessageObserver.OnDevToolsEvent(IBrowser browser, string method, S
257
257
eventProxy . Raise ( this , method , parameters , SyncContext ) ;
258
258
}
259
259
}
260
- catch ( Exception ex )
260
+ catch ( Exception ex )
261
261
{
262
262
var errorEvent = DevToolsEventError ;
263
263
264
264
var json = "" ;
265
265
266
- if ( parameters . Length > 0 )
266
+ if ( parameters . Length > 0 )
267
267
{
268
268
parameters . Position = 0 ;
269
269
270
270
try
271
271
{
272
272
json = StreamToString ( parameters , leaveOpen : false ) ;
273
273
}
274
- catch ( Exception )
274
+ catch ( Exception )
275
275
{
276
276
//TODO: do we somehow pass this exception to the user?
277
277
}
@@ -338,7 +338,7 @@ void IDevToolsMessageObserver.OnDevToolsMethodResult(IBrowser browser, int messa
338
338
/// <param name="eventName">event Name</param>
339
339
/// <param name="stream">JSON stream</param>
340
340
/// <returns>object of type <typeparamref name="T"/></returns>
341
- private static T DeserializeJsonEvent < T > ( string eventName , Stream stream ) where T : EventArgs
341
+ private static T DeserializeJsonEvent < T > ( string eventName , Stream stream ) where T : EventArgs
342
342
{
343
343
if ( typeof ( T ) == typeof ( EventArgs ) )
344
344
{
@@ -369,6 +369,20 @@ private static T DeserializeJson<T>(Stream stream)
369
369
return ( T ) DeserializeJson ( typeof ( T ) , stream ) ;
370
370
}
371
371
372
+ #if NETCOREAPP
373
+ private static readonly System . Text . Json . JsonSerializerOptions DefaultJsonSerializerOptions = new System . Text . Json . JsonSerializerOptions
374
+ {
375
+ PropertyNameCaseInsensitive = true ,
376
+ IgnoreNullValues = true ,
377
+ Converters = { new CefSharp . Internals . Json . JsonEnumConverterFactory ( ) } ,
378
+ } ;
379
+ #else
380
+ private static readonly System . Runtime . Serialization . Json . DataContractJsonSerializerSettings DefaultJsonSerializerSettings = new System . Runtime . Serialization . Json . DataContractJsonSerializerSettings
381
+ {
382
+ UseSimpleDictionaryFormat = true ,
383
+ } ;
384
+ #endif
385
+
372
386
/// <summary>
373
387
/// Deserialize the JSON stream into a .Net object.
374
388
/// For .Net Core/.Net 5.0 uses System.Text.Json
@@ -380,24 +394,13 @@ private static T DeserializeJson<T>(Stream stream)
380
394
private static object DeserializeJson ( Type type , Stream stream )
381
395
{
382
396
#if NETCOREAPP
383
- var options = new System . Text . Json . JsonSerializerOptions
384
- {
385
- PropertyNameCaseInsensitive = true ,
386
- IgnoreNullValues = true ,
387
- } ;
388
-
389
- options . Converters . Add ( new CefSharp . Internals . Json . JsonEnumConverterFactory ( ) ) ;
390
-
391
397
// TODO: use synchronus Deserialize<T>(Stream) when System.Text.Json gets updated
392
398
var memoryStream = new MemoryStream ( ( int ) stream . Length ) ;
393
399
stream . CopyTo ( memoryStream ) ;
394
400
395
- return System . Text . Json . JsonSerializer . Deserialize ( memoryStream . ToArray ( ) , type , options ) ;
401
+ return System . Text . Json . JsonSerializer . Deserialize ( memoryStream . ToArray ( ) , type , DefaultJsonSerializerOptions ) ;
396
402
#else
397
- var settings = new System . Runtime . Serialization . Json . DataContractJsonSerializerSettings ( ) ;
398
- settings . UseSimpleDictionaryFormat = true ;
399
-
400
- var dcs = new System . Runtime . Serialization . Json . DataContractJsonSerializer ( type , settings ) ;
403
+ var dcs = new System . Runtime . Serialization . Json . DataContractJsonSerializer ( type , DefaultJsonSerializerSettings ) ;
401
404
return dcs . ReadObject ( stream ) ;
402
405
#endif
403
406
}
0 commit comments