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
Microsoft.Office.Project.Server.Library namespace
Outros recursos
Como: efetuar logon no Project Server por meio de programação