private void checkConstruction(
            PersonalData data,
            NameOrPseudonym nameOrPseudonym,
            IBigInteger nameDistinguisher,
            DerGeneralizedTime dateOfBirth,
            DirectoryString placeOfBirth,
            string gender,
            DirectoryString postalAddress)
        {
            checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

            data = PersonalData.GetInstance(data);

            checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

            Asn1InputStream aIn = new Asn1InputStream(data.ToAsn1Object().GetEncoded());

            Asn1Sequence seq = (Asn1Sequence)aIn.ReadObject();

            data = PersonalData.GetInstance(seq);

            checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);
        }