示例#1
0
 // Binary serializer
 void Write(BinaryWriter writer)
 {
     writer.Write(this.FileName ?? string.Empty);
     if (this.Symbols != null)
     {
         SymbolHelper.WriteEncodedInt32(writer, this.Symbols.Count);
         foreach (ActivitySymbol actSym in this.Symbols)
         {
             actSym.Write(writer);
         }
     }
     else
     {
         SymbolHelper.WriteEncodedInt32(writer, 0);
     }
 }
示例#2
0
 // Binary serializer.
 internal void Write(BinaryWriter writer)
 {
     SymbolHelper.WriteEncodedInt32(writer, this.StartLine);
     SymbolHelper.WriteEncodedInt32(writer, this.StartColumn);
     SymbolHelper.WriteEncodedInt32(writer, this.EndLine);
     SymbolHelper.WriteEncodedInt32(writer, this.EndColumn);
     if (this.QualifiedId != null)
     {
         SymbolHelper.WriteEncodedInt32(writer, this.QualifiedId.Length);
         writer.Write(this.QualifiedId, 0, this.QualifiedId.Length);
     }
     else
     {
         SymbolHelper.WriteEncodedInt32(writer, 0);
     }
 }
示例#3
0
        internal string Encode(EncodingFormat encodingFormat)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                using (BinaryWriter writer = new BinaryWriter(ms))
                {
                    if (this.checksum != null)
                    {
                        writer.Write((byte)(encodingFormat | EncodingFormat.Checksum));
                        SymbolHelper.WriteEncodedInt32(writer, this.checksum.Length);
                        writer.Write(this.checksum);
                    }
                    else
                    {
                        writer.Write((byte)encodingFormat);
                    }
                    switch (encodingFormat)
                    {
                    case EncodingFormat.Binary:
                        this.Write(writer);
                        break;

                    case EncodingFormat.String:
                        writer.Write(this.ToString());
                        break;

                    default:
                        throw FxTrace.Exception.AsError(new SerializationException());
                    }
                    // Need to copy to a buffer to trim excess capacity.
                    byte[] buffer = new byte[ms.Length];
                    Array.Copy(ms.GetBuffer(), buffer, ms.Length);
                    return(Convert.ToBase64String(buffer));
                }
            }
        }