.NET MAUI依赖注入:何时使用AddTransient/AddSingleton?
MAUI里AddTransient和AddSingleton的通俗用法
先明确:这俩都是在MauiProgram.cs里给依赖注入系统注册服务(包括页面)的方法,核心区别就是你注册的对象(页面/工具类)能活多久。
AddSingleton:整个APP一辈子只搞一个实例
- 不管你在APP里调用多少次这个对象,用的都是同一个“老伙计”
- 比如全局的用户信息管理器、统一的网络请求客户端,整个APP只需要一份的东西,就用这个
- 如果给页面注册成Singleton,那不管你导航过去多少次,都是同一个页面实例——之前输入的文字、勾选的选项,回来的时候还在那儿
AddTransient:每次用都搞个新实例
- 每次你需要这个对象(比如导航到某个页面),系统都会给你造个全新的“新人”
- 适合那些每次打开都要干净状态的页面,比如登录页、一次性的提交表单页
- 你猜的完全对:用AddTransient注册的页面,导航离开后原来的实例会被系统清理掉,下次再点进去就是从零开始的新页面,和第一次打开一模一样
简单判断选哪个
- 要全局共享状态、整个APP只需要一份的,用
AddSingleton - 每次用都要全新状态、不需要留历史的,用
AddTransient
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

