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)
我收到"对象引用错误"
当您使用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)