不能在 wf4 xaml 活动中使用“me”或“this”关键字之类的内容
本文关键字:关键字 this me wf4 xaml 活动中 不能 | 更新日期: 2023-09-27 18:30:41
我们实现了一个类ActivityException
,其中构造函数接受(除其他外)类型为System.Activities.Activity
的参数。此参数用于创建包含 Activity.DisplayName
和 Activity.Id
的错误消息。
这对于用 C# 编写的 WF4 活动非常有效。在这里,我可以使用以下内容:
throw new ActivityException(this, ...)
但现在我正在实现 xaml 格式的 WF4 活动(即使用工作流编辑器)。如果我在这里抛出异常,我必须使用 System.Activities.Statements.Throw
活动。我按如下方式填写了此活动的Exception
参数:
new ActivityException(Me, ...)
但工作流编辑器说:"'我'仅在实例方法中有效"。
我也尝试了"这个"而不是"我",但这也会产生错误消息。
有人知道如何解决这个问题吗?
例如,如果表单名称是 MainWindow,您可以执行以下操作: MainWindow mw = new MainWindow;
new ActivityException(mw, ...)
即使这样的事情最终奏效,您尝试访问Me
也将是Thrown
活动,而不是任何其他活动。此外,您似乎正在使用异常来记录某些内容(?这不是你做这种事情的方式。
不知道你想做什么,我建议你退后一步,考虑其他方法。两个选项:
1) 创建您自己的活动,该活动接收所述 DisplayName 并抛出异常:
public class ThrownActivityException : CodeActivity
{
[RequiredArgument]
public InArgument<string> ActivityDisplayName { get; set; }
public override void Execute(CodeActivityContext context)
{
var displayName = ActivityDisplayName.Get(context);
throw new ActivityException(displayName);
}
}
2)第二种选择,可能是你想要的。考虑到您尝试访问运行时信息(活动的 Id)以进行日志记录,请检查工作流跟踪及其功能。