如何在代码活动中执行代码活动?
public sealed class ApprovalRequired : CodeActivity
{
,,
EmailActivity ea = new EmailActivity() // this is a code activity
ea.Sender = ...
ea.Rec = ...
ea.Subject = "Approved"
// ea.Execute() - 无法调用execute方法..
}
答案 0 :(得分:1)
最简单的方法是准备一个基于XAML的活动,该活动在其中某处具有 ApprovalRequired 活动的序列活动。像这样:
编辑:要实际从其他活动执行“内部”活动,您的 ApprovalRequired 类应首先从NativeActivity
类继承,并覆盖 CacheMetadata 允许工作流应用程序知道期望子活动的方法将被执行。 ApprovalRequired 活动如下所示:
namespace WCA.Scratch
{
using System.Activities;
public sealed class ApprovalRequired : NativeActivity
{
public ApprovalRequired()
{
this.Email = new Email();
}
public Email Email
{
get;
set;
}
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
metadata.AddImplementationChild(this.Email);
}
protected override void Execute(NativeActivityContext context)
{
// Some logic here...
this.Email.Body = "My email body.";
this.Email.From = "me@someplace.com";
this.Email.To = "someone@someplace.com";
this.Email.Subject = "Approval Request";
context.ScheduleActivity(this.Email);
// Some other logic here...
}
}
}
请注意,您还需要在 ApprovalRequired 的CacheMetadata
方法中手动注册任何活动参数或活动变量。