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


Метод PSClientError.GetAllErrors

Получает массив объектов PSErrorInfo , описывающих все текущей ошибки.

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

Синтаксис

'Декларация
Public Function GetAllErrors As PSErrorInfo()
'Применение
Dim instance As PSClientError
Dim returnValue As PSErrorInfo()

returnValue = instance.GetAllErrors()
public PSErrorInfo[] GetAllErrors()

Возвращаемое значение

Тип: []

Замечания

Чтобы получить список всех ошибок, возникающих при получении исключение при вызове метода 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);
}

См. также

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

PSClientError класс

Элементы PSClientError

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

CheckOutResources

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

How to: Log on to Project Server Programmatically

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