Compartir a través de


Clase PSClientError

Contiene información sobre una excepción SOAP para un método PSI.

Jerarquía de la herencia

System.Object
  Microsoft.Office.Project.Server.Library.PSClientError

Espacio de nombres:  Microsoft.Office.Project.Server.Library
Ensamblado:  Microsoft.Office.Project.Server.Library (en Microsoft.Office.Project.Server.Library.dll)

Sintaxis

'Declaración
<SerializableAttribute> _
Public Class PSClientError _
    Implements ISerializable
'Uso
Dim instance As PSClientError
[SerializableAttribute]
public class PSClientError : ISerializable

Comentarios

Para obtener una lista de todos los errores que se producen si se genera una excepción cuando se llama a un método PSI, pase el objeto de SoapException para el constructor de la clase Microsoft.Office.Project.Server.Library.PSClientError . Luego puede utilizar GetAllErrors para almacenar la información de error en una matriz de PSErrorInfo y enumerar los errores, como en el ejemplo siguiente.

Nota

El objeto PSErrorInfo no puede incluir toda la información que necesita. Por ejemplo, si utiliza Resource.CheckOutResources en algunos de los recursos ya están desprotegidos, PSErrorInfo muestra el motivo del error para cada recurso que no se puede desproteger, pero no incluye el nombre del recurso o el GUID. Para que una forma obtener más información, consulte CheckOutResources.

Ejemplos

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Services.Protocols;
using System.Windows.Forms;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
try
{
    /* call a PSI method */
}
catch (SoapException ex)
{
    string errAttributeName;
    string errAttribute;
    string errMess = "".PadRight(30, '=') + "\r\n" + "Error: " + "\r\n";

    PSLibrary.PSClientError error = new PSLibrary.PSClientError(ex);
    PSLibrary.PSErrorInfo[] errors = error.GetAllErrors();
    PSLibrary.PSErrorInfo thisError;

    for (int i = 0; i < errors.Length; i++)
    {
        thisError = errors[i];
        errMess += "\n" + ex.Message.ToString() + "\r\n";
        errMess += "".PadRight(30, '=') + "\r\nPSCLientError Output:\r\n \r\n";
        errMess += thisError.ErrId.ToString() + "\n";

        for (int j = 0; j < thisError.ErrorAttributes.Length; j++)
        {
            errAttributeName = thisError.ErrorAttributeNames()[j];
            errAttribute = thisError.ErrorAttributes[j];
            errMess += "\r\n\t" + errAttributeName +
                       ": " + errAttribute;
        }
        errMess += "\r\n".PadRight(30, '=');
    }
    MessageBox.Show(errMess, "Error", MessageBoxButtons.OK,
        MessageBoxIcon.Error);
}

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros PSClientError

Espacio de nombres Microsoft.Office.Project.Server.Library

CheckOutResources

Otros recursos

Cómo: iniciar sesión en Project Server mediante programación

Códigos de error de Project Server 2013