C# 通过SharePoint中的自定义顺序工作流调用工作流

C# 通过SharePoint中的自定义顺序工作流调用工作流,c#,sharepoint,workflow,workflow-foundation,C#,Sharepoint,Workflow,Workflow Foundation,我已经创建了一个SharePoint 2007顺序工作流,并尝试以编程方式激活两个工作流(一个审批和一个反馈) workflowProperties.Site.WorkflowManager.StartWorkflow(workflowProperties.Item, association, association.AssociationData, true); 我使用此代码启动工作流程,并动态创建关联。当我试图访问其他列表以创建关联对象时,问题就出现了 SPList approvalsLi

我已经创建了一个SharePoint 2007顺序工作流,并尝试以编程方式激活两个工作流(一个审批和一个反馈)

workflowProperties.Site.WorkflowManager.StartWorkflow(workflowProperties.Item, association, association.AssociationData, true);
我使用此代码启动工作流程,并动态创建关联。当我试图访问其他列表以创建关联对象时,问题就出现了

SPList approvalsList = workflowProperties.Web.Lists["Tasks"];
SPList historyList = workflowProperties.Web.Lists["Workflow History"];
这就是我得到的:

Unable to cast COM object of type 'Microsoft.SharePoint.Library.SPRequestInternalClass' to interface type 'Microsoft.SharePoint.Library.ISPRequest'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{BDEADEBE-C265-11D0-BCED-00A0C90AB50F}' failed due to the following error: Bad variable type. (Exception from HRESULT: 0x80020008 (DISP_E_BADVARTYPE)).
唯一可访问的列表是通过workflowProperties.list。如何实现此功能,或者是否有更好的方法在自定义工作流中调用另一个工作流?

我用于启动另一个工作流。
如果不能按原样使用,请查看其源代码。看起来他们并没有手动设置任务和历史记录列表:

我会接受这个答案,尽管我不能真正使用它,因为我的项目已经提交=)而且,在我这么做之前,我自己做了很多搜索;这是除了使用我们最终使用的黑客之外的最后手段(实际上比任何东西都更折衷)。另外,调用两个工作流的问题是,您必须处于同一线程或其他线程中。由于某些原因,您无法从自定义工作流访问确切的SP上下文,因为它不在同一执行线程中运行。我不知道你的答案是否有效,但希望它能帮助其他人。嗨,贾丽尔。对不起,我帮不上忙。虽然我喜欢被接受的答案,但更好的做法是添加并接受你自己的答案——它确实解决了你的问题,而且更有可能帮助某人:)