Exemplo n.º 1
0
 public override void BSerialize(BinaryWriter writer, FPackageFileSummary summary)
 {
     if (Struct.GetType().IsArray)
     {
         object[] array = Struct as object[];
         foreach (object obj in array)
         {
             IStructObject structObject = obj as IStructObject;
             if (structObject != null)
             {
                 BSerializer.Serialize(writer, structObject.GetType(), structObject);
             }
             else
             {
                 (obj as UObject)?.BSerialize(writer, summary);
             }
         }
     }
     else if (Struct is IStructObject)
     {
         BSerializer.Serialize(writer, Struct.GetType(), Struct);
     }
     else
     {
         (Struct as UObject)?.BSerialize(writer, summary);
     }
 }
Exemplo n.º 2
0
 public void Setup()
 {
     Serializer           = new BSerializer <Person>();
     InterfaceSerializer  = new BSerializer <IPerson>();
     ListSerializer       = new BSerializer <List <IPerson> >();
     DictionarySerializer = new BSerializer <Dictionary <int, Person> >();
 }
Exemplo n.º 3
0
        public void BSerialize(BinaryWriter writer, FPackageFileSummary summary)
        {
            int index = summary.Names.Select((FNameEntry x, int i) => new
            {
                name  = x.Name,
                index = i
            }).First(x => x.name.Equals("None")).index;
            FName instance = new FName
            {
                Index = index
            };

            using (Enumerator enumerator = GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FPropertyTag current = enumerator.Current;
                    BSerializer.Serialize(writer, current.GetType(), current);
                    current.BSerialize(writer, summary);
                }
            }
            BSerializer.Serialize(writer, typeof(FName), instance);
            if (ObjectData != null)
            {
                writer.BaseStream.Position += 4L;
                ObjectData.BSerialize(writer, summary);
            }
        }
Exemplo n.º 4
0
 public override void BSerialize(BinaryWriter writer, FPackageFileSummary summary)
 {
     if (EnumName.Name == "None")
     {
         writer.Write(Convert.ToByte(Value));
     }
     else
     {
         BSerializer.Serialize(writer, typeof(FName), (FName)Value);
     }
 }
Exemplo n.º 5
0
 public void BSerialize(BinaryWriter writer, FPackageFileSummary summary)
 {
     writer.Write(base.Count);
     using (Enumerator enumerator = GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             KeyValuePair <FName, UObject> current = enumerator.Current;
             BSerializer.Serialize <FName>(writer, current.Key);
             current.Value.BSerialize(writer, summary);
         }
     }
 }
Exemplo n.º 6
0
 public void BSerialize(BinaryWriter writer, FPackageFileSummary summary)
 {
     BSerializer.WriteFString(writer, Name);
     writer.Write(base.Count);
     using (Enumerator enumerator = GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             KeyValuePair <string, string> current = enumerator.Current;
             BSerializer.WriteFString(writer, current.Key);
             BSerializer.WriteFString(writer, current.Value);
         }
     }
 }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            CustomSerializer customSerializer = new CustomSerializer(typeof(Person));

            BSerializer <Person>                    serializer          = new BSerializer <Person>();
            BSerializer <IPerson>                   serializerInterface = new BSerializer <IPerson>();
            BSerializer <List <IPerson> >           listSerializer      = new BSerializer <List <IPerson> >();
            BSerializer <Dictionary <int, Person> > dictSerializer      = new BSerializer <Dictionary <int, Person> >();

            //string test =



            var parent = new Person()
            {
                age = 32, Address = "Some other place", FirstName = "Parent", LastName = "McParenton", Id = 69
            };

            parent.Parent = parent;
            var person = new Person()
            {
                age = 41, Id = 123, FirstName = "Bloodthirst", LastName = "Ketsueki", Address = "Some place", Parent = parent
            };

            StreamWriter fileWriter = File.CreateText("D:\\DSerializer - Log.txt");



            string serializedPerson = serializer.Serialize(parent);

            var deserialize = serializer.Deserialize(serializedPerson);

            string serializedParent = serializer.Serialize(person);;

            string  interfaceSerialized   = serializerInterface.Serialize(person);
            IPerson interfaceDiserialized = serializerInterface.Deserialize(interfaceSerialized);

            string serialized   = serializer.Serialize(person);
            Person deserialized = serializer.Deserialize(serialized);


            List <IPerson> list = new List <IPerson>()
            {
                person, parent
            };

            string serializedList = listSerializer.Serialize(list);

            List <IPerson> deserializedList = listSerializer.Deserialize(serializedList);

            fileWriter.Write("/// List ///");

            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(serializedList);

            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);


            fileWriter.Write("/// Object ///");
            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);

            fileWriter.Write(serializedPerson);

            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);


            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);


            fileWriter.Write(Environment.NewLine);
            fileWriter.Write(Environment.NewLine);

            fileWriter.Dispose();
        }