/// <summary>
 ///     Constructs an extended request.
 /// </summary>
 /// <param name="requestName">
 ///     The OID for this extended operation.
 /// </param>
 /// <param name="requestValue">
 ///     An optional request value.
 /// </param>
 public RfcExtendedRequest(RfcLdapOid requestName, Asn1OctetString requestValue)
     : base(2)
 {
     Add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.Context, false, RequestName), requestName, false));
     if (requestValue != null)
     {
         Add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.Context, false, RequestValue), requestValue,
                            false));
     }
 }
        /// <summary>
        ///     Note: criticality is only added if true, as per RFC 2251 sec 5.1 part
        ///     (4): If a value of a type is its default value, it MUST be
        ///     absent.
        /// </summary>
        public RfcControl(RfcLdapOid controlType, Asn1Boolean criticality, Asn1OctetString controlValue)
            : base(3)
        {
            Add(controlType);
            if (criticality.BooleanValue())
            {
                Add(criticality);
            }

            if (controlValue != null)
            {
                Add(controlValue);
            }
        }
        // *************************************************************************
        // Constructors for ExtendedRequest
        // *************************************************************************

        /// <summary>
        ///     Constructs an extended request.
        /// </summary>
        /// <param name="requestName">
        ///     The OID for this extended operation.
        /// </param>
        public RfcExtendedRequest(RfcLdapOid requestName)
            : this(requestName, null)
        {
        }
 /// <summary> </summary>
 public RfcControl(RfcLdapOid controlType, Asn1Boolean criticality)
     : this(controlType, criticality, null)
 {
 }
        // *************************************************************************
        // Constructors for Control
        // *************************************************************************

        /// <summary> </summary>
        public RfcControl(RfcLdapOid controlType)
            : this(controlType, new Asn1Boolean(false), null)
        {
        }