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
Espacio de nombres Microsoft.Office.Project.Server.Library
Otros recursos
Cómo: iniciar sesión en Project Server mediante programación