@@ -284,16 +284,17 @@ public System.Type BindToType(string assemblyName, string typeName)
284284 /// Instead, the <see cref="OnDeserialized"/> method should be appended to the <see cref="JsonContract.OnDeserializedCallbacks"/>
285285 /// of the <see cref="Hashtable"/> <see cref="JsonContract"/>.
286286 /// </summary>
287- private class HashtableConverter : JsonConverter < Hashtable >
287+ private class HashtableConverter : JsonConverter
288288 {
289289 /// <inheritdoc />
290- public override void WriteJson ( JsonWriter writer , Hashtable value , Serializer serializer )
290+ public override void WriteJson ( JsonWriter writer , object value , Serializer serializer )
291291 {
292292 writer . WriteStartObject ( ) ;
293293 writer . WritePropertyName ( ShortTypeMetadataName ) ;
294294 writer . WriteValue ( TypeAliases [ typeof ( Hashtable ) ] ) ;
295295
296- foreach ( DictionaryEntry entry in value )
296+ var hashtable = ( Hashtable ) value ;
297+ foreach ( DictionaryEntry entry in hashtable )
297298 {
298299 var type = entry . Key . GetType ( ) ;
299300 if ( type == typeof ( string ) )
@@ -314,12 +315,19 @@ public override void WriteJson(JsonWriter writer, Hashtable value, Serializer se
314315 }
315316
316317 /// <inheritdoc />
317- public override Hashtable ReadJson ( JsonReader reader , System . Type objectType , Hashtable existingValue , bool hasExistingValue ,
318- Serializer serializer )
318+ public override bool CanRead => false ;
319+
320+ /// <inheritdoc />
321+ public override object ReadJson ( JsonReader reader , System . Type objectType , object existingValue , Serializer serializer )
319322 {
320323 throw new NotSupportedException ( ) ;
321324 }
322325
326+ public override bool CanConvert ( System . Type objectType )
327+ {
328+ return typeof ( Hashtable ) == objectType ;
329+ }
330+
323331 public static void OnDeserialized ( object o , Serializer serializer )
324332 {
325333 var hashtable = ( Hashtable ) o ;
@@ -344,9 +352,6 @@ public static void OnDeserialized(object o, Serializer serializer)
344352 hashtable . Remove ( key ) ;
345353 }
346354 }
347-
348- /// <inheritdoc />
349- public override bool CanRead => false ;
350355 }
351356
352357 /// <summary>
0 commit comments