/// <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); }
/// <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); }