Example #1
0
        /// <summary>
        /// Construtor para serialização.
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected FunctionCall(SerializationInfo info, StreamingContext context) : base(info, context)
        {
            _call = (ConditionalTerm)info.GetValue("M", Type.GetType(info.GetString("T"), true));
            var size = info.GetInt32("S");

            _parameters = new ConditionalTerm[size];
            for (var i = 0; i < size; ++i)
            {
                _parameters[i] = GetTerm(info, i);
            }
            _options = (FunctionCallOptions)info.GetInt32("Options");
        }
Example #2
0
        /// <summary>
        /// Desserializa a instância previamente serializada em formato binário.
        /// </summary>
        /// <param name="reader"></param>
        protected override void Deserialize(CompactReader reader)
        {
            _call    = GetConditionalTerm(reader);
            _options = (FunctionCallOptions)(int)reader.ReadInt32();
            var size = reader.ReadInt32();

            _parameters = new ConditionalTerm[size];
            for (var i = 0; i < size; ++i)
            {
                if (reader.ReadBoolean())
                {
                    _parameters[i] = GetConditionalTerm(reader);
                }
            }
        }
Example #3
0
 /// <summary>
 /// Desserializa a instância previamente serializada em formato XML.
 /// </summary>
 /// <param name="reader"></param>
 protected override void ReadXml(XmlReader reader)
 {
     if (reader.IsEmptyElement)
     {
         reader.Skip();
     }
     else
     {
         reader.MoveToAttribute("options");
         _options = (FunctionCallOptions)reader.ReadContentAsInt();
         reader.MoveToElement();
         reader.ReadStartElement();
         _call = GetConditionalTerm(reader);
         var par = new List <ConditionalTerm>();
         reader.ReadStartElement(ListQualifiedName.Name, ListQualifiedName.Namespace);
         while (reader.NodeType != XmlNodeType.EndElement)
         {
             par.Add(GetConditionalTerm(reader));
         }
         _parameters = par.ToArray();
         reader.ReadEndElement();
         reader.ReadEndElement();
     }
 }