Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }