public void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { serializer.AddTypeIDField(doc, parent, this, context); var skipNull = (serializer.Flags ^ BSONSerializationFlags.KeepNull) == 0; doc.Add(serializer.PKFieldName, m_Guid, required: true) .Add(BSON_FLD_RELATED_TO, m_RelatedTo, skipNull) .Add(BSON_FLD_TYPE, m_Type.ToString(), skipNull, required: true) .Add(BSON_FLD_SOURCE, m_Source, skipNull) .Add(BSON_FLD_TIMESTAMP, m_TimeStamp.ToUniversalTime(), skipNull) .Add(BSON_FLD_HOST, m_Host, skipNull) .Add(BSON_FLD_FROM, m_From, skipNull) .Add(BSON_FLD_TOPIC, m_Topic, skipNull) .Add(BSON_FLD_TEXT, m_Text, skipNull) .Add(BSON_FLD_PARAMETERS, m_Parameters, skipNull) .Add(BSON_FLD_ARCHIVE_DIMENSIONS, m_ArchiveDimensions, skipNull) .Add(BSON_FLD_CHANNEL, m_Channel, skipNull); if (m_Exception == null) { return; } var we = m_Exception as WrappedException; if (we == null) { we = WrappedException.ForException(m_Exception); } doc.Add(BSON_FLD_EXCEPTION, serializer.Serialize(we, parent: this), skipNull); }
/// <summary> /// Adds a field named TypeIDFieldName with the type id of the object instance, force=true to emit the field even if it is a known type. /// Returns true if type id element was added /// </summary> public virtual bool AddTypeIDField(BSONDocument doc, IBSONSerializable parent, IBSONSerializable self, object ctx, bool force = false) { if (doc == null) { return(false); } if (self == null) { return(false); } var add = force || parent == null; var t = self.GetType(); if (!add) { add = !parent.IsKnownTypeForBSONDeserialization(t); } if (add) { var id = BSONSerializableAttribute.GetGuidTypeAttribute <object, BSONSerializableAttribute>(t) .TypeGuid; var telm = new BSONBinaryElement(TypeIDFieldName, new BSONBinary(BSONBinaryType.UUID, id.ToByteArray())); doc.Set(telm); return(true); } return(false); }
public void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { serializer.AddTypeIDField(doc, parent, this, context); doc.Add(serializer.PKFieldName, Guid, required: true); doc.Add(BSON_FLD_TRUE, True); doc.Add(BSON_FLD_FALSE, False); doc.Add(BSON_FLD_CHARMIN, CharMin); doc.Add(BSON_FLD_CHARMAX, CharMax); doc.Add(BSON_FLD_SBYTEMIN, SByteMin); doc.Add(BSON_FLD_SBYTEMAX, SByteMax); doc.Add(BSON_FLD_BYTEMIN, ByteMin); doc.Add(BSON_FLD_BYTEMAX, ByteMax); doc.Add(BSON_FLD_INT16MIN, Int16Min); doc.Add(BSON_FLD_INT16MAX, Int16Max); doc.Add(BSON_FLD_UINT16MIN, UInt16Min); doc.Add(BSON_FLD_UINT16MAX, UInt16Max); doc.Add(BSON_FLD_INT32MIN, Int32Min); doc.Add(BSON_FLD_INT32MAX, Int32Max); doc.Add(BSON_FLD_UINT32MIN, UInt32Min); doc.Add(BSON_FLD_UINT32MAX, UInt32Max); doc.Add(BSON_FLD_INT64MIN, Int64Min); doc.Add(BSON_FLD_INT64MAX, Int64Max); doc.Add(BSON_FLD_UINT64MIN, UInt64Min); doc.Add(BSON_FLD_UINT64MAX, UInt64Max); doc.Add(BSON_FLD_SINGLEEPS, SingleEps); doc.Add(BSON_FLD_SINGLEMIN, SingleMin); doc.Add(BSON_FLD_SINGLEMAX, SingleMax); doc.Add(BSON_FLD_SINGLENAN, SingleNaN); doc.Add(BSON_FLD_SINGLEPOSINF, SinglePosInf); doc.Add(BSON_FLD_SINGLENEGINF, SingleNegInf); doc.Add(BSON_FLD_DOUBLEEPS, DoubleEps); doc.Add(BSON_FLD_DOUBLEMIN, DoubleMin); doc.Add(BSON_FLD_DOUBLEMAX, DoubleMax); doc.Add(BSON_FLD_DOUBLENAN, DoubleNaN); doc.Add(BSON_FLD_DOUBLEPOSINF, DoublePosInf); doc.Add(BSON_FLD_DOUBLENEGINF, DoubleNegInf); doc.Add(BSON_FLD_DECIMALMIN, DecimalMin); doc.Add(BSON_FLD_DECIMALMAX, DecimalMax); doc.Add(BSON_FLD_DECIMALZERO, DecimalZero); doc.Add(BSON_FLD_DECIMALONE, DecimalOne); doc.Add(BSON_FLD_DECIMALMONE, DecimalMOne); doc.Add(BSON_FLD_DATETIMEMIN, DateTimeMin); doc.Add(BSON_FLD_DATETIMEMAX, DateTimeMax); doc.Add(BSON_FLD_DATETIMENOW, DateTimeNow); doc.Add(BSON_FLD_DATETIMEUTC, DateTimeUtc); doc.Add(BSON_FLD_TIMESPANMIN, TimeSpanMin); doc.Add(BSON_FLD_TIMESPANMAX, TimeSpanMax); doc.Add(BSON_FLD_STRINGEMPTY, StringEmpty); doc.Add(BSON_FLD_STRINGNULL, StringNull); doc.Add(BSON_FLD_STRING, String); }
/// <summary> /// Serializes an instance directly into BSONDocument /// </summary> public BSONDocument Serialize(IBSONSerializable payload, IBSONSerializable parent = null) { if (payload == null) { return(null); } object ctx = null; var result = new BSONDocument(); try { payload.SerializeToBSON(this, result, parent, ref ctx); } catch (Exception error) { throw new BSONException(StringConsts.BSON_SERIALIZER_STB_ERROR.Args(error.ToMessageWithType()), error); } return(result); }
public void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { serializer.AddTypeIDField(doc, parent, this, context); doc.Set(new BSONStringElement("tname", TypeName)) .Set(new BSONStringElement("msg", Message)) .Set(new BSONInt32Element("code", Code)) .Set(new BSONStringElement("app", ApplicationName)) .Set(new BSONStringElement("src", Source)) .Set(new BSONStringElement("trace", StackTrace)); if (WrappedData != null) { doc.Set(new BSONStringElement("wdata", WrappedData)); } if (m_InnerException == null) { return; } doc.Set(new BSONDocumentElement("inner", serializer.Serialize(m_InnerException, parent: this))); }
public virtual void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { serializer.AddTypeIDField(doc, parent, this, context); doc.Add(BSON_FLD_COUNT, m_Count) .Add(BSON_FLD_TIME, m_UTCTime); if (m_Count > 0) { doc.Add(BSON_FLD_END_TIME, m_UTCEndTime); } if ((serializer.Flags & BSONSerializationFlags.UIOnly) == 0) { doc.Add(BSON_FLD_SOURCE, Source); } }
public void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { serializer.AddTypeIDField(doc, parent, this, context); doc.Set(new BSONDocumentElement("wrp", serializer.Serialize(m_Wrapped, parent: this))); }
public override void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { base.SerializeToBSON(serializer, doc, parent, ref context); doc.Add(BSON_FLD_VALUE, m_Value); }
public override void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { base.SerializeToBSON(serializer, doc, parent, ref context); doc.Set(DataDocConverter.Amount_CLRtoBSON(BSON_FLD_VALUE, m_Value)); }
public override void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { base.SerializeToBSON(serializer, doc, parent, ref context); doc.Add(BSON_FLD_EXCEPTION_TYPE, m_ExceptionType); }
public void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { throw new NotSupportedException(); }
public override void SerializeToBSON(BSONSerializer serializer, BSONDocument doc, IBSONSerializable parent, ref object context) { base.SerializeToBSON(serializer, doc, parent, ref context); doc.Add(BSON_FLD_ENTITY, m_Entity); doc.Add(BSON_FLD_G_SHARD, m_G_Shard.ToString()); doc.Add(BSON_FLD_G_ENTITY, m_G_Entity.ToString()); doc.Add(BSON_FLD_DIMS, m_Dimensions); }