从异步回调中访问字段

时间:2011-03-15 20:51:12

标签: c#

这是我的工作流程(我知道它很糟糕,但我现在需要一些工作):

  1. 创建用户。
  2. 异步渲染确认模板并将字符串返回到已完成的事件。
  3. 在已完成的活动中使用该字符串发送电子邮件。
  4. 在步骤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);
    
        }
    

1 个答案:

答案 0 :(得分:1)

您可以使用委托

发送电子邮件