/// <summary> /// 写入行文本协议内容 /// </summary> /// <exception cref="InvalidOperationException"></exception> /// <param name="writer">写入器 </param> public void WriteTo(ILineProtocolWriter writer) { if (this.builder.fields.Count == 0) { throw new InvalidOperationException($"至少设置一个Field值"); } writer.Write(this.builder.measurement); foreach (var item in this.builder.tags.OrderBy(item => item.Column)) { writer.WriteComma().Write(item.Column).WriteEqual().Write(item.Value); } var firstField = true; foreach (var item in this.builder.fields.OrderBy(item => item.Column)) { if (firstField == true) { firstField = false; writer.WriteSpace(); } else { writer.WriteComma(); } writer.Write(item.Column).WriteEqual().Write(item.Value); } if (this.builder.timestamp != null) { writer.WriteSpace().Write(this.builder.timestamp.ToString()); } }
/// <summary> /// 写入行文本协议内容 /// </summary> /// <param name="writer">写入器 </param> public void WriteTo(ILineProtocolWriter writer) { writer.Write(desciptor.Utf8Measurement); foreach (var tag in desciptor.Tags) { var value = tag.GetStringValue(entity); writer.WriteComma().Write(tag.Utf8Name).WriteEqual().Write(value); } var firstField = true; foreach (var field in desciptor.Fields) { if (firstField == true) { firstField = false; writer.WriteSpace(); } else { writer.WriteComma(); } var value = field.GetStringValue(entity); writer.Write(field.Utf8Name).WriteEqual().Write(value); } if (desciptor.Timestamp != null) { var timestamp = desciptor.Timestamp.GetStringValue(entity); if (timestamp != null) { writer.WriteSpace().Write(timestamp); } } }