我正在尝试获取工作流程过程历史记录项的每个活动的批准状态,如下所示。
var status = csClient.Read(activitiydetails.Id, readoption) as ApprovalStatusData;
logdetails("Activity Approval Status--->" + status.Title.ToString());
我收到“对象引用错误”
答案 0 :(得分:5)
当您使用As
运算符转换为ApprovalStatusData
时,如果从csClient.Read()
返回的对象不是ApprovalStatusData
,则应该预期其值为null 。当您尝试在以下行中使用它时,您将收到对象引用错误。
似乎可能是因为您的变量被称为activitiydetails
[sic],您不应该期望返回ApprovalStatusData
。
如果使用正确的Cast运算符编写代码,则在尝试转换时代码将失败,并抛出InvalidCastException。
var status = (ApprovalStatusData)csClient.Read(activitiydetails.Id, readoption);
logdetails("Activity Approval Status--->" + status.Title.ToString());