我有可以在许多执行环境中运行的通用代码——在 IIS 中、在 WCF 服务中、在独立应用程序中或在 Windows 工作流实例中。
但是检查代码是否在工作流中运行的最佳方法是什么?目前,我一直在用这段代码寻找WorkflowEnvironment.WorkflowInstanceID
并捕捉任何异常:
...
try
{
if (WorkflowEnvironment.WorkflowInstanceId != null)
{
return ExecutionContext.Workflow;
}
}
catch
{
}
// return unknown
return ExecutionContext.Unknown;
没有更好的方法吗?我想消除对try...catch
块的需要。