Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2020.10


Fire and forget in ASP.NET Core with dependency alive

这篇文章探讨了在ASP.NET Core中实现"Fire and Forget"模式时可能遇到的问题以及如何通过依赖注入和生命周期管理来解决这些问题。作者指出,在控制器中直接使用`Task.Run()`启动长时间运行的任务可能会导致依赖对象过早释放,从而引发不可预知的结果。为了解决这一问题,文章提出了一种新的解决方案:创建一个单例服务(CannonService),该服务能够确保任务执行过程中所需的依赖始终保持存活状态。通过这种方式,不仅可以避免依赖被意外释放的问题,还能实现异步任务的非阻塞执行。 文中详细介绍了如何构建和注册这个CannonService,并展示了如何在控制器中使用它来执行需要长时间运行的任务(例如发送确认邮件)。此外,作者还提供了相关的NuGet包资源,方便开发者快速集成这一解决方案到实际项目中。 文章最后提醒读者,在使用"Fire and Forget"模式时,除了关注依赖生命周期的管理外,还需要考虑任务失败后的错误处理机制以及日志记录的重要性。同时,作者提出了几个值得思考的问题:在实际应用场景中,哪些情况最适合使用"Fire and Forget"模式?如何平衡异步任务的执行效率与系统资源的占用?这些问题不仅帮助读者更好地理解文章内容,也激发了对相关技术更深层次的探索和实践。--DeepSeek

ASP.NET Core C# Async Fire and forget dependency injection singleton service

How to serialize JSON object in C# without Newtonsoft Json

这篇文章探讨了在无法使用 Newtonsoft.Json 包的情况下如何在 C# 中进行 JSON 对象的序列化和反序列化。通过提供一个自定义工具类 `MyJsonConverter`,展示了利用内置的 `DataContractJsonSerializer` 实现这些功能的方法,并附有代码示例以验证其有效性。文章最后提出了一些问题,如“在没有第三方库支持的情况下,如何高效处理复杂的 JSON 数据?”以及“除了避免版本冲突,还有哪些场景适合使用这种方法?”,旨在激发读者的兴趣和进一步思考。--DeepSeek

C# JSON .NET Newtonsoft.Json JSON handling Custom JSON solution