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

将Xamarin.Forms应用迁移至.NET MAUI,能否使用Unity Container做依赖注入?

.NET MAUI对Unity Container的支持情况

.NET MAUI完全支持Unity Container,你可以在迁移后的MAUI项目中继续用它实现依赖注入,常见的使用方式有两种:

  • 直接使用Unity作为独立DI容器
    你可以沿用Xamarin.Forms里的用法,在MAUI项目的启动逻辑(比如MauiProgram.cs或App构造函数)中初始化Unity容器、注册服务,之后在页面或ViewModel中直接从容器解析实例。示例代码:

    var container = new UnityContainer();
    container.RegisterType<IMyService, MyService>();
    // 注册其他业务服务
    
  • 与MAUI内置DI系统集成
    若想兼容MAUI的Microsoft.Extensions.DependencyInjection管道,可借助Unity.Microsoft.DependencyInjection扩展包,将Unity容器集成到MAUI的服务集合中,这样既能保留Unity的特性,也能复用MAUI的内置服务注入能力。示例代码:

    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder.UseMauiApp<App>();
    
        var container = new UnityContainer();
        container.RegisterType<IMyService, MyService>();
        builder.Services.AddUnity(container);
    
        return builder.Build();
    }
    

注意要使用适配.NET 6+版本的Unity相关NuGet包(如Unity.Container、Unity.Microsoft.DependencyInjection),避免版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:15:51