Exemple #1
0
 /// <summary>
 /// Writes a single field to a CodedOutputStream.
 /// </summary>
 public void WriteField(IFieldDescriptorLite field, Object value, ICodedOutputStream output)
 {
     if (field.IsExtension && field.MessageSetWireFormat)
     {
         output.WriteMessageSetExtension(field.FieldNumber, field.Name, (IMessageLite)value);
     }
     else
     {
         if (field.IsRepeated)
         {
             IEnumerable valueList = (IEnumerable)value;
             if (field.IsPacked)
             {
                 output.WritePackedArray(field.FieldType, field.FieldNumber, field.Name, valueList);
             }
             else
             {
                 output.WriteArray(field.FieldType, field.FieldNumber, field.Name, valueList);
             }
         }
         else
         {
             output.WriteField(field.FieldType, field.FieldNumber, field.Name, value);
         }
     }
 }
 /// <summary>
 /// Serializes the length-delimited values of the field, including field
 /// number, and writes them to <paramref name="output"/> using the MessageSet wire format.
 /// </summary>
 /// <param name="fieldNumber"></param>
 /// <param name="output"></param>
 public void WriteAsMessageSetExtensionTo(int fieldNumber, ICodedOutputStream output)
 {
     foreach (ByteString value in lengthDelimitedList)
     {
         output.WriteMessageSetExtension(fieldNumber, UnknownFieldName, value);
     }
 }