June 2017

新的项目采用了ASPNETCORE,其中依赖注入使用了AutoFac,通过JSON配置文件实现注入. 在配置生存周期的时候,将部分类型设置为SingleInstance. 其中有个发邮件的类,代码大概是下面的. Class EmailService{ .. ctor(){ mailMessage = new MailMessage(); } public void SendAsync(string To,…){ mailMessage.ToList.Add(To); } .. } 单例的对象里面的mailMessage.ToList在并发的情况下,在controller注入实例化后下次实例化之前,可能被多次添加收件人, 出现了一些用户收到多封的情况. 一些教训: 1. 不要写和修改自己不理解的代码 2. 代码提示很重要, 用代码配置可能比写配置文件更清晰,避免犯错 3. CodeReview很重要 […]