public void WriteObject(string className, IDictionary objectFields, IProtocolFormatter writer) { if (objectFields.Contains("serializeAsArrayMap")) { objectFields.Remove("serializeAsArrayMap"); WriteObjectMap(objectFields, writer); return; } if (className != null) { writer.BeginWriteNamedObject(className, objectFields.Count); } else { //writer.BeginWriteObjectMap( objectFields.Count ); writer.BeginWriteObject(objectFields.Count); } IEnumerator en = objectFields.Keys.GetEnumerator(); while (en.MoveNext()) { object fieldName = en.Current; if (Log.isLogging(LoggingConstants.SERIALIZATION)) { Log.log(LoggingConstants.SERIALIZATION, "serializing property/field : " + fieldName); } writer.WriteFieldName(fieldName.ToString()); writer.BeginWriteFieldValue(); try { MessageWriter.writeObject(objectFields[fieldName], writer); } catch (Exception exception) { if (Log.isLogging(LoggingConstants.ERROR)) { Log.log(LoggingConstants.ERROR, "unable to serialize object's field " + fieldName, exception); } } finally { writer.EndWriteFieldValue(); } } if (className != null) { writer.EndWriteNamedObject(); } else { //writer.EndWriteObjectMap(); writer.EndWriteObject(); } }
public override void write( object obj, IProtocolFormatter writer ) { IDictionary propertyBag = ((AnonymousObject) obj).Properties; writer.BeginWriteObject( propertyBag.Count ); foreach( object key in propertyBag.Keys ) { writer.WriteFieldName( key.ToString() ); writer.BeginWriteFieldValue(); MessageWriter.writeObject( propertyBag[ key ], writer ); writer.EndWriteFieldValue(); } writer.EndWriteObject(); }
public void WriteObject( string className, IDictionary objectFields, IProtocolFormatter writer ) { if ( objectFields.Contains( "serializeAsArrayMap" ) ) { objectFields.Remove( "serializeAsArrayMap" ); WriteObjectMap( objectFields, writer ); return; } if( className != null ) writer.BeginWriteNamedObject( className, objectFields.Count ); else //writer.BeginWriteObjectMap( objectFields.Count ); writer.BeginWriteObject( objectFields.Count ); IEnumerator en = objectFields.Keys.GetEnumerator(); while( en.MoveNext() ) { object fieldName = en.Current; if( Log.isLogging( LoggingConstants.SERIALIZATION ) ) Log.log( LoggingConstants.SERIALIZATION, "serializing property/field : " + fieldName ); writer.WriteFieldName( fieldName.ToString() ); writer.BeginWriteFieldValue(); try { MessageWriter.writeObject( objectFields[ fieldName ], writer ); } catch( Exception exception ) { if( Log.isLogging( LoggingConstants.ERROR ) ) Log.log( LoggingConstants.ERROR, "unable to serialize object's field " + fieldName, exception ); } finally { writer.EndWriteFieldValue(); } } if( className != null ) writer.EndWriteNamedObject(); else //writer.EndWriteObjectMap(); writer.EndWriteObject(); }
private void WriteObjectMap(IDictionary objectFields, IProtocolFormatter writer) { int maxInt = -1; for (int i = 0; i < objectFields.Count; i++) { if (!objectFields.Contains(i)) { break; } maxInt = i; } writer.BeginWriteObjectMap(maxInt + 1); IEnumerator en = objectFields.Keys.GetEnumerator(); while (en.MoveNext()) { object fieldName = en.Current; if (fieldName.Equals("length")) { continue; } if (Log.isLogging(LoggingConstants.SERIALIZATION)) { Log.log(LoggingConstants.SERIALIZATION, "serializing property/field : " + fieldName); } writer.WriteFieldName(fieldName.ToString()); writer.BeginWriteFieldValue(); MessageWriter.writeObject(objectFields[fieldName], writer); writer.EndWriteFieldValue(); } if (maxInt >= 0) { writer.WriteFieldName("length"); MessageWriter.writeObject(maxInt + 1, writer); } writer.EndWriteObjectMap(); }
public override void write(object obj, IProtocolFormatter writer) { IDictionary propertyBag = ((AnonymousObject)obj).Properties; writer.BeginWriteObject(propertyBag.Count); foreach (object key in propertyBag.Keys) { writer.WriteFieldName(key.ToString()); writer.BeginWriteFieldValue(); MessageWriter.writeObject(propertyBag[key], writer); writer.EndWriteFieldValue(); } writer.EndWriteObject(); }
private void WriteObjectMap( IDictionary objectFields, IProtocolFormatter writer ) { int maxInt = -1; for ( int i = 0; i < objectFields.Count; i++ ) { if ( !objectFields.Contains( i ) ) break; maxInt = i; } writer.BeginWriteObjectMap( maxInt + 1 ); IEnumerator en = objectFields.Keys.GetEnumerator(); while ( en.MoveNext() ) { object fieldName = en.Current; if ( fieldName.Equals( "length" ) ) continue; if ( Log.isLogging( LoggingConstants.SERIALIZATION ) ) Log.log( LoggingConstants.SERIALIZATION, "serializing property/field : " + fieldName ); writer.WriteFieldName( fieldName.ToString() ); writer.BeginWriteFieldValue(); MessageWriter.writeObject( objectFields[ fieldName ], writer ); writer.EndWriteFieldValue(); } if ( maxInt >= 0 ) { writer.WriteFieldName( "length" ); MessageWriter.writeObject( maxInt + 1, writer ); } writer.EndWriteObjectMap(); }