public void Fill(TObject configObject)
        {
            this.CheckDisposed();
            MailboxManagementDataAdapter <TObject> .CheckPrincipal(configObject.Principal);

            this.InternalFill(configObject);
        }
        public void Delete(IExchangePrincipal principal)
        {
            this.CheckDisposed();
            MailboxManagementDataAdapter <TObject> .CheckPrincipal(principal);

            this.InternalDelete(principal);
        }
        public TObject Read(IExchangePrincipal principal)
        {
            this.CheckDisposed();
            MailboxManagementDataAdapter <TObject> .CheckPrincipal(principal);

            return(this.InternalRead(principal));
        }
        public void Save(TObject configObj)
        {
            this.CheckDisposed();
            if (configObj == null)
            {
                throw new ArgumentNullException("configObj");
            }
            MailboxManagementDataAdapter <TObject> .CheckPrincipal(configObj.Principal);

            this.InternalSave(configObj);
        }