/// <summary> /// Equals method overloaded to compare two values of the same data type. /// </summary> /// <param name="obj">The object to compare with.</param> /// <returns>true, if both values are equals, otherwise false.</returns> public override bool Equals(object obj) { if (!(obj is X500RDN)) { return(base.Equals(obj)); } X500RDN compareTo = (X500RDN)obj; return((string.Compare(this.Attribute, compareTo.Attribute, true, CultureInfo.InvariantCulture) == 0) && (string.Compare(this.Value, compareTo.Value, true, CultureInfo.InvariantCulture) == 0)); }
/// <summary> /// Creates a new X500Name using the name as a string. /// </summary> /// <param name="name">The name as a string.</param> public X500Name(string name) { if (name == null || name.Length == 0) throw new ArgumentNullException("name"); _name = name; string[] parts = name.Split(','); //iterate through the parts in reverse order, to allow terminal RDN match for (int i = parts.GetUpperBound(0); i >= 0; i--) { X500RDN rdn = new X500RDN(parts[i]); _parts.Add(rdn); _keys.Add(rdn.Attribute); } }
/// <summary> /// Creates a new X500Name using the name as a string. /// </summary> /// <param name="name">The name as a string.</param> public X500Name(string name) { if (name == null || name.Length == 0) { throw new ArgumentNullException("name"); } _name = name; string[] parts = name.Split(','); //iterate through the parts in reverse order, to allow terminal RDN match for (int i = parts.GetUpperBound(0); i >= 0; i--) { X500RDN rdn = new X500RDN(parts[i]); _parts.Add(rdn); _keys.Add(rdn.Attribute); } }