Example #1
0
        /// <summary>
        /// Initializes a new instance of the ObjectId class.
        /// </summary>
        /// <param name="value">The value.</param>
        public ObjectId(string value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            Span <byte> span = stackalloc byte[BsonUtils.GetHexStringBinaryLength(value)];

            BsonUtils.ParseHexString(value, span);
            FromByteSpan(span, 0, out _a, out _b, out _c);
        }
Example #2
0
        /// <summary>
        /// Tries to parse a string and create a new ObjectId.
        /// </summary>
        /// <param name="s">The string value.</param>
        /// <param name="objectId">The new ObjectId.</param>
        /// <returns>True if the string was parsed successfully.</returns>
        public static bool TryParse(string s, out ObjectId objectId)
        {
            // don't throw ArgumentNullException if s is null
            if (s != null && s.Length == 24)
            {
                Span <byte> bytes = stackalloc byte[BsonUtils.GetHexStringBinaryLength(s)];
                if (BsonUtils.TryParseHexString(s, bytes))
                {
                    objectId = new ObjectId(bytes);
                    return(true);
                }
            }

            objectId = default(ObjectId);
            return(false);
        }