Ejemplo n.º 1
0
 /// <summary>
 /// Serializa usando o CompactSerializer.
 /// </summary>
 /// <param name="writer">Representa o compact writer.</param>
 public void Serialize(Colosoft.Serialization.IO.CompactWriter writer)
 {
     writer.Write(_name);
     writer.Write((int)_direction);
     if (_value != null)
     {
         if (_value is Queryable)
         {
             _value = ((Queryable)_value).CreateQueryInfo();
         }
         if (_value is ReferenceParameter)
         {
             writer.Write((byte)2);
             ((Colosoft.Serialization.ICompactSerializable)_value).Serialize(writer);
         }
         else if (_value is QueryInfo)
         {
             writer.Write((byte)3);
             ((Colosoft.Serialization.ICompactSerializable)_value).Serialize(writer);
         }
         else
         {
             writer.Write((byte)1);
             var    valueType = _value.GetType();
             object value;
             if (valueType.IsEnum)
             {
                 valueType = Enum.GetUnderlyingType(valueType);
                 value     = Convert.ChangeType(_value, valueType);
             }
             else
             {
                 value = _value;
             }
             writer.WriteObject(value);
         }
     }
     else
     {
         writer.Write((byte)0);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Serializa os dados da instancia.
 /// </summary>
 /// <param name="writer"></param>
 public virtual void Serialize(Colosoft.Serialization.IO.CompactWriter writer)
 {
     for (var i = 0; i < _descriptor.Count; i++)
     {
         var field = _descriptor[i];
         var value = _values[i];
         writer.Write((byte)(value == null ? 1 : 0));
         if (value != null)
         {
             try
             {
                 var type = value.GetType();
                 writer.WriteObject(value);
             }
             catch (Exception ex)
             {
                 throw new System.Runtime.Serialization.SerializationException(ResourceMessageFormatter.Create(() => Properties.Resources.Record_SerializeFieldError, field.Name, field.Type.FullName, ex.Message).Format(), ex);
             }
         }
     }
 }
 /// <summary>
 /// Serializa usando o CompactSerializer.
 /// </summary>
 /// <param name="writer">Representa o compact writer.</param>
 void Colosoft.Serialization.ICompactSerializable.Serialize(Colosoft.Serialization.IO.CompactWriter writer)
 {
     writer.Write(_columnName);
     if (_value != null)
     {
         writer.Write((byte)1);
         var    valueType = _value.GetType();
         object value;
         if (valueType.IsEnum)
         {
             valueType = Enum.GetUnderlyingType(valueType);
             value     = Convert.ChangeType(_value, valueType);
         }
         else
         {
             value = _value;
         }
         writer.WriteObject(value);
     }
     else
     {
         writer.Write((byte)0);
     }
 }