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的类构造函数。然后,可以使用GetAllErrorsPSErrorInfo数组中存储的错误信息和枚举的错误,如下面的示例中所示。

备注

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

线程安全性

该类型的任何公共 静态 (已共享 在 Visual Basic 中) 成员都是线程安全的。不保证任何实例成员都是线程安全的。

另请参阅

引用

PSClientError 成员

Microsoft.Office.Project.Server.Library 命名空间

CheckOutResources

其他资源

如何: 登录到项目服务器以编程方式

Project Server 2013 错误代码