You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Xamarin.Forms项目的Autofac依赖注入转换为.NET MAUI依赖注入

将Autofac依赖注入转换为.NET MAUI原生DI

原Autofac代码的作用是:注册包含IViewModel的程序集中,所有实现了IViewModel的类,以自身类型作为服务类型注入。对应的.NET MAUI原生DI实现如下:

在MauiProgram.cs的CreateMauiApp方法中,添加以下代码:

var assembly = typeof(IViewModel).Assembly;
// 遍历程序集中所有实现IViewModel的非抽象类
foreach (var type in assembly.GetTypes()
    .Where(t => typeof(IViewModel).IsAssignableFrom(t) && !t.IsAbstract && !t.IsInterface))
{
    // 默认注册为Transient生命周期,可根据需求改为AddScoped/AddSingleton
    builder.Services.AddTransient(type);
}

说明

  • 原Autofac的AsSelf()对应原生DI中直接注册具体类型(当请求该具体类型时,DI容器会返回其实例)
  • 生命周期默认使用AddTransient,如果原项目使用了其他生命周期(如Scoped/Singleton),可替换为对应的AddScoped或AddSingleton
  • 代码过滤了抽象类和接口,避免注册无效类型

内容的提问来源于stack exchange,提问作者user20694704

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:02:07