public static void Serialize(ObjectWriter writer, DiagnosticAnalysisResultMap<string, DiagnosticAnalysisResultBuilder> result, CancellationToken cancellationToken) { var diagnosticSerializer = new DiagnosticDataSerializer(VersionStamp.Default, VersionStamp.Default); var analysisResult = result.AnalysisResult; writer.WriteInt32(analysisResult.Count); foreach (var kv in analysisResult) { writer.WriteString(kv.Key); Serialize(writer, diagnosticSerializer, kv.Value.SyntaxLocals, cancellationToken); Serialize(writer, diagnosticSerializer, kv.Value.SemanticLocals, cancellationToken); Serialize(writer, diagnosticSerializer, kv.Value.NonLocals, cancellationToken); diagnosticSerializer.WriteTo(writer, kv.Value.Others, cancellationToken); } var telemetryInfo = result.TelemetryInfo; writer.WriteInt32(telemetryInfo.Count); foreach (var kv in telemetryInfo) { writer.WriteString(kv.Key); Serialize(writer, kv.Value, cancellationToken); } var exceptions = result.Exceptions; writer.WriteInt32(exceptions.Count); foreach (var kv in exceptions) { writer.WriteString(kv.Key); diagnosticSerializer.WriteTo(writer, kv.Value, cancellationToken); } }
private static void Serialize( ObjectWriter writer, DiagnosticDataSerializer serializer, ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> diagnostics, CancellationToken cancellationToken) { writer.WriteInt32(diagnostics.Count); foreach (var kv in diagnostics) { Serializer.SerializeDocumentId(kv.Key, writer, cancellationToken); serializer.WriteTo(writer, kv.Value, cancellationToken); } }