public void WriteDefaultObjectForType(Type type) { // get serializer IAmf3Serializer serializer = GetSerializerForType(type); // create default instance var defaultInstance = serializer.NewInstance(null); // write object using serializer serializer.WriteObject(this, defaultInstance); }
public void Write(object obj) { if (obj == null) { Write(Amf3TypeCode.Null); return; } var serializable = obj as IAmf3Writable; if (serializable != null) { serializable.Serialize(this); return; } var str = obj as string; if (str != null) { Write(str); return; } var expando = obj as ExpandoObject; if (expando != null) { Write(expando); return; } if (obj is bool) { Write((bool)obj); return; } if (obj is double) { Write((double)obj); return; } if (obj is float) { Write((double)(float)obj); return; } if (obj is int) { Write((int)obj); return; } if (obj is uint) { Write((int)(uint)obj); return; } if (obj is _root.Date) { Write((_root.Date)obj); return; } if (obj is IList) { Write((IList)obj); return; } if (obj is flash.utils.ByteArray) { Write((flash.utils.ByteArray)obj); return; } if (obj is flash.utils.Dictionary) { Write((flash.utils.Dictionary)obj); return; } if (obj is byte || obj is sbyte || obj is short || obj is ushort) { Write(Convert.ToInt32(obj)); return; } // get serializer from type var type = obj.GetType(); IAmf3Serializer serializer = GetSerializerForType(type); // write object using serializer serializer.WriteObject(this, obj); }