Compartilhar via


PSClientError classe

Contém informações sobre uma exceção de SOAP para um método PSI.

Inheritance hierarchy

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

Namespace:  Microsoft.Office.Project.Server.Library
Assembly:  Microsoft.Office.Project.Server.Library (em Microsoft.Office.Project.Server.Library.dll)

Sintaxe

'Declaração
<SerializableAttribute> _
Public Class PSClientError _
    Implements ISerializable
'Uso
Dim instance As PSClientError
[SerializableAttribute]
public class PSClientError : ISerializable

Comentários

Para obter uma lista de todos os erros que ocorrem se você obtiver uma exceção quando você chamar um método PSI, passe o objeto SoapException para o construtor da classe Microsoft.Office.Project.Server.Library.PSClientError . Em seguida, você pode usar GetAllErrors para armazenar as informações de erro em uma matriz de PSErrorInfo e enumerar os erros, como no exemplo a seguir.

Dica

O objeto PSErrorInfo pode não incluir todas as informações que você precisa. Por exemplo, se você usar Resource.CheckOutResources onde alguns dos recursos já são check-out, PSErrorInfo mostra o motivo de falha para cada recurso que não é possível fazer check-out, mas não inclui o nome do recurso ou o GUID. Uma maneira obter mais informações, consulte CheckOutResources.

Exemplos

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);
}

Segurança de thread

Os membros públicos estática (Shared no Visual Basic) desse tipo são seguros para thread. Nenhum membro de instância pode ser garantido como seguro para thread.

Ver também

Referência

PSClientError membros

Microsoft.Office.Project.Server.Library namespace

CheckOutResources

Outros recursos

Como: efetuar logon no Project Server por meio de programação

Códigos de erro do Project Server 2013