0

我正在尝试获取工作流过程历史记录项的每个活动的批准状态,如下所示。

var status = csClient.Read(activitiydetails.Id, readoption) as ApprovalStatusData;
logdetails("Activity Approval Status--->" + status.Title.ToString());

我收到“对象引用错误”

4

1 回答 1

5

当您使用As运算符强制转换为 时ApprovalStatusData,您应该期望如果从返回的对象csClient.Read()不是一个ApprovalStatusData,它的值将为空。当您尝试在以下行中使用它时,您将收到对象引用错误。

从您的变量称为 [sic] 的事实看来activitiydetails,您不应该期望ApprovalStatusData返回 an 。

如果您使用正确的 Cast 运算符编写代码,则当您尝试强制转换时代码将失败,并抛出 InvalidCastException。

var status = (ApprovalStatusData)csClient.Read(activitiydetails.Id, readoption);
logdetails("Activity Approval Status--->" + status.Title.ToString());
于 2012-08-07T13:43:43.313 回答