/// <inheritdoc />
        public string SerializeToString(
            object objectToSerialize)
        {
            string result;

            if (objectToSerialize == null)
            {
                result = null;
            }
            else
            {
                if (objectToSerialize.GetType() != typeof(DateTime))
                {
                    throw new ArgumentException(Invariant($"{nameof(objectToSerialize)}.GetType() != typeof({nameof(DateTime)}); '{nameof(objectToSerialize)}' is of type '{objectToSerialize.GetType().ToStringReadable()}'"));
                }

                result = ObcDateTimeStringSerializer.SerializeToString((DateTime)objectToSerialize);
            }

            return(result);
        }
 public string SerializeToString(
     object objectToSerialize)
 {
     if (objectToSerialize == null)
     {
         return(null);
     }
     else if (objectToSerialize is string objectToSerializeString)
     {
         return(objectToSerializeString);
     }
     else if (objectToSerialize is Guid objectToSerializeGuid)
     {
         return(objectToSerializeGuid.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is bool objectToSerializeBool)
     {
         return(objectToSerializeBool.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is DateTime objectToSerializeDateTime)
     {
         return(ObcDateTimeStringSerializer.SerializeToString(objectToSerializeDateTime));
     }
     else if (objectToSerialize is sbyte objectToSerializeSignedByte)
     {
         return(objectToSerializeSignedByte.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is byte objectToSerializeByte)
     {
         return(objectToSerializeByte.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is short objectToSerializeShort)
     {
         return(objectToSerializeShort.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is ushort objectToSerializeUnsignedShort)
     {
         return(objectToSerializeUnsignedShort.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is int objectToSerializeInt)
     {
         return(objectToSerializeInt.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is uint objectToSerializeUnsignedInt)
     {
         return(objectToSerializeUnsignedInt.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is long objectToSerializeLong)
     {
         return(objectToSerializeLong.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is ulong objectToSerializeUnsignedLong)
     {
         return(objectToSerializeUnsignedLong.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is float objectToSerializeFloat)
     {
         return(objectToSerializeFloat.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is double objectToSerializeDouble)
     {
         return(objectToSerializeDouble.ToStringInvariantPreferred());
     }
     else if (objectToSerialize is decimal objectToSerializeDecimal)
     {
         return(objectToSerializeDecimal.ToStringInvariantPreferred());
     }
     else
     {
         return(this.FallbackSerializer.SerializeToString(objectToSerialize));
     }
 }