Пример #1
0
        public void DeserializeContents(ref object value, int version, ISerializationReader reader)
        {
            var list = (List <T>)value;

            var items = reader.ReadSet <T>(SerializationConstants.DefaultValueItemName);

            list.AddRange(items);
        }
Пример #2
0
        public void DeserializeContents(ref object value, int version, ISerializationReader reader)
        {
            var dictionary = (Dictionary <TKey, TValue>)value;

            foreach (var kvp in reader.ReadSet <KeyValuePair <TKey, TValue> >("Item"))
            {
                dictionary.Add(kvp.Key, kvp.Value);
            }
        }
Пример #3
0
        public void DeserializeContents(ref object value, int version, ISerializationReader reader)
        {
            LinkedList <T> list = (LinkedList <T>)value;

            var items = reader.ReadSet <T>(SerializationConstants.DefaultValueItemName);

            foreach (var cur in items)
            {
                list.AddLast((T)cur);
            }
        }
Пример #4
0
        public void DeserializeContents(ref object value, int version, ISerializationReader reader)
        {
            Array array = (Array)value;

            var enumerator = reader.ReadSet(_elementType, SerializationConstants.DefaultValueItemName, false).GetEnumerator();

            if (array.Rank == 1)
            {
                for (int i = 0; i < array.Length && enumerator.MoveNext(); ++i)
                {
                    array.SetValue(enumerator.Current, i);
                }
            }
            else
            {
                int[] index = new int[array.Rank];
                RecursiveAssignArray(enumerator, array, index, 0);
            }

            while (enumerator.MoveNext())
            {
                // ensures all enumerated items are read
            }
        }
Пример #5
0
 public void DeserializeConstructor(out object value, int version, ISerializationReader reader)
 {
     int[] lengths = reader.ReadSet <int>("Length").ToArray();
     value = Array.CreateInstance(_elementType, lengths);
 }
Пример #6
0
 public static IEnumerable <T> ReadSet <T>(this ISerializationReader reader, string itemName, bool allowCircularDependencies = false)
 {
     return(reader.ReadSet(typeof(T), itemName, allowCircularDependencies).Cast <T>());
 }