如何从工作流程历史记录中获取批准状态?

use*_*019 0 c# tridion tridion-2011

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

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

我收到"对象引用错误"

Dom*_*nin 5

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

似乎可能是因为你的变量被称为activitiydetails[sic],你不应该期望ApprovalStatusData返回它.

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

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