Поделиться через


Класс PSClientError

Содержит сведения об исключении SOAP для метода PSI.

Иерархия наследования

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

Пространство имен:  Microsoft.Office.Project.Server.Library
Сборка:  Microsoft.Office.Project.Server.Library (в Microsoft.Office.Project.Server.Library.dll)

Синтаксис

'Декларация
<SerializableAttribute> _
Public Class PSClientError _
    Implements ISerializable
'Применение
Dim instance As PSClientError
[SerializableAttribute]
public class PSClientError : ISerializable

Замечания

Чтобы получить список всех ошибок, возникающих при получении исключение при вызове метода PSI, передайте объект SoapException конструктор класса Microsoft.Office.Project.Server.Library.PSClientError . Затем можно использовать GetAllErrors для хранения сведений об ошибках в массиве PSErrorInfo и перечисление ошибок, как показано в следующем примере.

Примечание

Объект PSErrorInfo не может содержать все нужной информации. Например если вы используете Resource.CheckOutResources , где некоторые ресурсы уже извлечен, PSErrorInfo показывает причину сбоя для каждого ресурса, не может быть извлечен, но не включает ресурсов имя или идентификатор GUID. Способ получить дополнительные сведения в разделе CheckOutResources.

Примеры

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

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы PSClientError

Пространство имен Microsoft.Office.Project.Server.Library

CheckOutResources

Другие ресурсы

How to: Log on to Project Server Programmatically

Коды ошибок Project Server 2013