private void OnSerializeCustomSoapHeaders(XmlWriter writer)
        {
            object obj = null;

            if (this.logonType != null)
            {
                obj = EwsHelper.CreateSpecialLogonAuthenticationHeader(this.Mailbox, this.logonType.Value, this.budgetType, this.RequiredServerVersion);
            }
            else if (this.securityAccessToken != null)
            {
                obj = EwsHelper.CreateSerializedSecurityContext(this.Mailbox, this.securityAccessToken);
            }
            if (obj != null)
            {
                SafeXmlSerializer safeXmlSerializer = new SafeXmlSerializer(obj.GetType());
                safeXmlSerializer.Serialize(writer, obj);
            }
        }