Beispiel #1
0
        public string SerializeList(IEnumerable <ISerializableSelector> list)
        {
            // Get the list of all items to serialize, including dependencies and excluding non-serializable ISerializables
            List <ISerializable> items = new SerializableEnumerator(list).ToList();

            // Make reference IDs for every serialized object
            Dictionary <ISerializable, long> refDict = MakeSerializationRefDict(items);

            // Loop over all items, making their dynamic objects and adding them to the serialization queue
            List <dynamic> dynamicList = new List <dynamic>(items.Count);

            foreach (ISerializable item in items)
            {
                dynamic serData = new ExpandoObject();
                serData.type = item.GetType().FullName;
                object data = item.Serialize();
                serData.dataType = data.GetType().FullName;
                serData.data     = JsonConvert.SerializeObject(data);
                serData.bindings = item.SerializeBindings(refDict);
                dynamicList.Add(serData);
            }

            // Serialize into JSON
            return(JsonConvert.SerializeObject(dynamicList.ToArray()));
        }
        public string SerializeList(IEnumerable<ISerializableSelector> list)
        {
            // Get the list of all items to serialize, including dependencies and excluding non-serializable ISerializables
            List<ISerializable> items = new SerializableEnumerator(list).ToList();

            // Make reference IDs for every serialized object
            Dictionary<ISerializable, long> refDict = MakeSerializationRefDict(items);

            // Loop over all items, making their dynamic objects and adding them to the serialization queue
            List<dynamic> dynamicList = new List<dynamic>(items.Count);
            foreach (ISerializable item in items)
            {
                dynamic serData = new ExpandoObject();
                serData.type = item.GetType().FullName;
                object data = item.Serialize();
                serData.dataType = data.GetType().FullName;
                serData.data = JsonConvert.SerializeObject(data);
                serData.bindings = item.SerializeBindings(refDict);
                dynamicList.Add(serData);
            }

            // Serialize into JSON
            return JsonConvert.SerializeObject(dynamicList.ToArray());
        }