public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            var underlyingType = Enum.GetUnderlyingType(staticType);
            IStaticTypeSerializer primitiveSerializer = serializer.GetTypeData(underlyingType).TypeSerializer;

            primitiveSerializer.Serialize(serializer, underlyingType, stream, ob);
        }
示例#2
0
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
            }
            else
            {
                Type  elementType = ob.GetType().GetElementType();
                Array array       = (Array)ob;
                int   length      = array.Length;
                Primitives.WritePrimitive(stream, (uint)length + 1);
                IStaticTypeSerializer typeSerializer = serializer.GetTypeData(elementType).TypeSerializer;

                foreach (object element in array)
                {
                    typeSerializer.Serialize(serializer, elementType, stream, element);
                }
            }
        }
        public void Serialize(Stream stream, object value, Type type)
        {
            IStaticTypeSerializer serializer = GetTypeSerializer(type);

            serializer.Serialize(this, type, stream, value);
        }