示例#1
0
 private static void SerializeHelper(ITelemetry telemetryItem, JsonSerializationWriter jsonSerializationWriter, string baseType, string telemetryName)
 {
     jsonSerializationWriter.WriteProperty("name", telemetryItem.WriteTelemetryName(telemetryName));
     telemetryItem.WriteEnvelopeProperties(jsonSerializationWriter);
     jsonSerializationWriter.WriteStartObject("data");
     jsonSerializationWriter.WriteProperty("baseType", baseType);
     jsonSerializationWriter.WriteStartObject("baseData");
     telemetryItem.SerializeData(jsonSerializationWriter);
     jsonSerializationWriter.WriteEndObject(); // baseData
     jsonSerializationWriter.WriteEndObject(); // data
 }
示例#2
0
 public void WritePropertyStringThrowsArgumentNullExceptionForNameInputAsNull()
 {
     using (var stringWriter = new StringWriter(CultureInfo.InvariantCulture))
     {
         var writer = new JsonSerializationWriter(stringWriter);
         AssertEx.Throws <ArgumentNullException>(() => writer.WriteProperty(null, "value"));
     }
 }
示例#3
0
 public void WritePropertyIDictionaryStringStringWritesValuesWithoutDoubleQuotes()
 {
     using (var stringWriter = new StringWriter(CultureInfo.InvariantCulture))
     {
         var writer = new JsonSerializationWriter(stringWriter);
         writer.WriteProperty("name", new Dictionary <string, string> {
             { "key1", "1" }
         });
         AssertEx.Contains("\"key1\":\"1\"", stringWriter.ToString(), StringComparison.OrdinalIgnoreCase);
     }
 }
示例#4
0
 public void WritePropertyIDictionaryStringStringWritesPropertyNameFollowedByValuesInCurlyBraces()
 {
     using (var stringWriter = new StringWriter(CultureInfo.InvariantCulture))
     {
         var writer = new JsonSerializationWriter(stringWriter);
         writer.WriteProperty("name", new Dictionary <string, string> {
             { "key1", "1" }
         });
         AssertEx.StartsWith("\"name\":{", stringWriter.ToString(), StringComparison.OrdinalIgnoreCase);
         AssertEx.EndsWith("}", stringWriter.ToString(), StringComparison.OrdinalIgnoreCase);
     }
 }
示例#5
0
        private static void SerializeUnknownTelemetryHelper(ITelemetry telemetryItem, JsonSerializationWriter jsonSerializationWriter)
        {
            DictionarySerializationWriter dictionarySerializationWriter = new DictionarySerializationWriter();

            telemetryItem.SerializeData(dictionarySerializationWriter); // Properties and Measurements are covered as part of Data if present
            telemetryItem.CopyGlobalPropertiesIfExist(dictionarySerializationWriter.AccumulatedDictionary);

            if (telemetryItem.Extension != null)
            {
                DictionarySerializationWriter extensionSerializationWriter = new DictionarySerializationWriter();
                telemetryItem.Extension.Serialize(extensionSerializationWriter); // Extension is supposed to be flattened as well

                Utils.CopyDictionary(extensionSerializationWriter.AccumulatedDictionary, dictionarySerializationWriter.AccumulatedDictionary);
                Utils.CopyDictionary(extensionSerializationWriter.AccumulatedMeasurements, dictionarySerializationWriter.AccumulatedMeasurements);
            }

            jsonSerializationWriter.WriteProperty("name", telemetryItem.WriteTelemetryName(EventTelemetry.TelemetryName));
            telemetryItem.WriteEnvelopeProperties(jsonSerializationWriter); // No need to copy Context - it's serialized here from the original item

            jsonSerializationWriter.WriteStartObject("data");
            jsonSerializationWriter.WriteProperty("baseType", typeof(EventData).Name);
            jsonSerializationWriter.WriteStartObject("baseData");

            jsonSerializationWriter.WriteProperty("ver", 2);
            jsonSerializationWriter.WriteProperty("name", EventNameForUnknownTelemetry);

            jsonSerializationWriter.WriteProperty("properties", dictionarySerializationWriter.AccumulatedDictionary);
            jsonSerializationWriter.WriteProperty("measurements", dictionarySerializationWriter.AccumulatedMeasurements);

            jsonSerializationWriter.WriteEndObject(); // baseData
            jsonSerializationWriter.WriteEndObject(); // data
        }