public override object ReadMap(AbstractHessianInput abstractHessianInput)
        {
            string value = null;

            while (!abstractHessianInput.IsEnd())
            {
                string key = abstractHessianInput.ReadString();
                if (key.Equals("value"))
                {
                    value = abstractHessianInput.ReadString();
                }
                else
                {
                    abstractHessianInput.ReadObject();
                }
            }

            abstractHessianInput.ReadMapEnd();

            if (value == null)
            {
                return(null);
            }

            object obj = decimal.Parse(value);

            abstractHessianInput.AddRef(obj);

            return(obj);
        }
        /// <summary>
        /// Reads string valued object
        /// </summary>
        /// <param name="abstractHessianInput">HessianInput Instance</param>
        /// <returns>Read string valued object</returns>
        public override object ReadMap(AbstractHessianInput abstractHessianInput)
        {
            String strInitValue = null;

            while (!abstractHessianInput.IsEnd())
            {
                string strKey   = abstractHessianInput.ReadString();
                string strValue = abstractHessianInput.ReadString();

                if (strKey.Equals("value"))
                {
                    strInitValue = strValue;
                }
            }

            abstractHessianInput.ReadMapEnd();

            if (strInitValue == null)
            {
                throw new IOException(m_type.FullName + " expects name.");
            }

            try
            {
                return(m_constructor.Invoke(new Object[] { strInitValue }));
            }
            catch (IOException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new IOException(e.ToString());
            }
        }
Example #3
0
        public override object ReadMap(AbstractHessianInput abstractHessianInput)
        {
            String name = null;

            while (!abstractHessianInput.IsEnd())
            {
                string key = abstractHessianInput.ReadString();

                if (key.Equals("name"))
                {
                    name = abstractHessianInput.ReadString();
                }
                else
                {
                    abstractHessianInput.ReadObject();
                }
            }

            abstractHessianInput.ReadMapEnd();

            if (name == null)
            {
                return(null);
            }

            Object obj = Enum.Parse(m_type, name);

            abstractHessianInput.AddRef(obj);

            return(obj);
        }
        public override object ReadMap(AbstractHessianInput abstractHessianInput)
        {
            string value = null;

            while (!abstractHessianInput.IsEnd())
            {
                string key = abstractHessianInput.ReadString();
                if (key.Equals("value"))
                {
                    value = abstractHessianInput.ReadString();
                }
                else
                {
                    abstractHessianInput.ReadObject();
                }
            }

            abstractHessianInput.ReadMapEnd();

            if (value == null)
            {
                return(null);
            }

            object obj = new System.Globalization.CultureInfo(value);

            abstractHessianInput.AddRef(obj);

            return(obj);
        }
        public Object ReadMap(AbstractHessianInput abstractHessianInput, Object obj)
        {
            try
            {
                int iref = abstractHessianInput.AddRef(obj);

                while (!abstractHessianInput.IsEnd())
                {
                    Object key = abstractHessianInput.ReadObject();

                    FieldDeserializer deser = (FieldDeserializer)_fieldMap[key];

                    if (deser != null)
                    {
                        deser.Deserialize(abstractHessianInput, obj);
                    }
                    else
                    {
                        abstractHessianInput.ReadObject();
                    }
                }

                abstractHessianInput.ReadMapEnd();

                Object resolve = Resolve(abstractHessianInput, obj);

                if (obj != resolve)
                {
                    abstractHessianInput.SetRef(iref, resolve);
                }

                return(resolve);
            }
            catch (IOException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new CHessianException(e.Message);
            }
        }
        public override object ReadMap(AbstractHessianInput abstractHessianInput)
        {
            //string value = null;

            while (!abstractHessianInput.IsEnd())
            {
                string key = abstractHessianInput.ReadString();
                //if (key.Equals("value"))
                //    value = abstractHessianInput.ReadString();
                //else
                //    abstractHessianInput.ReadObject();
            }

            abstractHessianInput.ReadMapEnd();

            //if (value == null)
            //    return null;

            object obj = DBNull.Value;

            abstractHessianInput.AddRef(obj);

            return(obj);
        }
        public Object ReadMap(AbstractHessianInput abstractHessianInput, Object obj)
        {
            try
            {
                SerializationInfo serializationInfo = new SerializationInfo(m_type, new FormatterConverter());

                while (!abstractHessianInput.IsEnd())
                {
                    Object key = abstractHessianInput.ReadObject();
                    serializationInfo.AddValue((string)key, abstractHessianInput.ReadObject());
                }

                abstractHessianInput.ReadMapEnd();

                obj = Instantiate(serializationInfo);

                int iref = abstractHessianInput.AddRef(obj);

                Object resolve = Resolve(abstractHessianInput, obj);

                if (obj != resolve)
                {
                    abstractHessianInput.SetRef(iref, resolve);
                }

                return(resolve);
            }
            catch (IOException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new CHessianException(e.Message);
            }
        }