这是我的工作流程(我知道它很糟糕,但我现在需要一些工作):
在步骤1和2中,我有一个带有电子邮件的字符串,并在调用渲染模板之前将其分配给私有字段。但是因为我在异步渲染模板后发送电子邮件,所以在步骤3中,字段email
为空。
如何让完成的活动可以访问电子邮件?
示例代码:
public AuthUser RegisterUser(string email, string password, string name)
{
//Register user here, etc.
//Assign to a private field so the render template callback can use it to send the email.
email = authUser.Email;
//after render completes, do something
templateService.RendertemplateCompleted += new System.ComponentModel.AsyncCompletedEventHandler(templateService_RendertemplateCompleted);
//render template
templateService.RenderTemplateAsync(null, TemplateName.ConfirmEmail);
return new AuthUser(CreateUserError.None);
}
private string email;
void templateService_RendertemplateCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
//Send confirmation email.
mailDeliveryService.Send(email, e.UserState as string);
}
答案 0 :(得分:1)
您可以使用委托
发送电子邮件