Esempio n. 1
0
        public virtual void Activate(IReferenceActivationContext context)
        {
            UnmarshallingContext unmarshallingContext = (UnmarshallingContext)context;
            IDictionary          map = (IDictionary)unmarshallingContext.PersistentObject();

            map.Clear();
            KeyValueHandlerPair handlers = ReadKeyValueTypeHandlers(context, context);
            int elementCount             = context.ReadInt();

            for (int i = 0; i < elementCount; i++)
            {
                object key = unmarshallingContext.ReadFullyActivatedObjectForKeys(handlers._keyHandler
                                                                                  );
                if (key == null && !unmarshallingContext.LastReferenceReadWasReallyNull())
                {
                    continue;
                }
                object value = context.ReadObject(handlers._valueHandler);
                map[key] = value;
            }
        }