private void checkConstruction( NameOrPseudonym id, string pseudonym, DirectoryString surname, Asn1Sequence givenName) { checkValues(id, pseudonym, surname, givenName); id = NameOrPseudonym.GetInstance(id); checkValues(id, pseudonym, surname, givenName); Asn1InputStream aIn = new Asn1InputStream(id.ToAsn1Object().GetEncoded()); if (surname != null) { Asn1Sequence seq = (Asn1Sequence) aIn.ReadObject(); id = NameOrPseudonym.GetInstance(seq); } else { IAsn1String s = (IAsn1String) aIn.ReadObject(); id = NameOrPseudonym.GetInstance(s); } checkValues(id, pseudonym, surname, givenName); }