WF4 活动没有 ID

发布于 2024-12-11 02:07:06 字数 206 浏览 0 评论 0原文

我想知道如何获取一个简单活动的 ID。例如:

        Sequence s = new Sequence();
        string id = s.Id;

id 始终为 null,并且由于它有一个私有 Setter,我无法设置此值。
在什么情况下这个值会由谁填充Id?

非常感谢您的回答。

I was wondering, how to get an Id for a simple activity. For example:

        Sequence s = new Sequence();
        string id = s.Id;

The id is always null and as it has a private Setter I cannot set this value.
Under which circumstances will this value be filled with an Id and by whom?

Thanks a lot for your answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

屋顶上的小猫咪 2024-12-18 02:07:06

ID 在您使用 WorkflowDesigner 时或在运行时设置。但即便如此,使用它也可能很棘手,因为它可以在 WorkflowDesigner 中采用不同的形式,具体取决于您加载工作流的方式。

The ID is set when you use the WorkflowDesigner or at runtime. But even then it can be tricky to work with because it can take on a different form in the WorkflowDesigner depending on how you load the workflow.

妞丶爷亲个 2024-12-18 02:07:06

您可以使用 WorkflowInspectionServices 列出根活动中的活动。使用 WorkflowInspectionServices 时,会设置 id。

使用像这样的递归函数:

void WriteActivities(Activity p_activity, int p_offset)
{
    Console.WriteLine("{2}Activity : {0}, {3} ({1})", p_activity.Id, p_activity.GetType().Name, new String('-', p_offset), p_activity.DisplayName);
    IEnumerable<Activity> l_activities = WorkflowInspectionServices.GetActivities(p_activity);

    foreach (Activity l_childActivity in l_activities)
    {
        WriteActivities(l_childActivity, p_offset + 1);
    }
}

You may use WorkflowInspectionServices to list activities from the root activity. When using WorkflowInspectionServices, the ids are set.

With a recursive function like this one :

void WriteActivities(Activity p_activity, int p_offset)
{
    Console.WriteLine("{2}Activity : {0}, {3} ({1})", p_activity.Id, p_activity.GetType().Name, new String('-', p_offset), p_activity.DisplayName);
    IEnumerable<Activity> l_activities = WorkflowInspectionServices.GetActivities(p_activity);

    foreach (Activity l_childActivity in l_activities)
    {
        WriteActivities(l_childActivity, p_offset + 1);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文