【C#/.NET】MAUI上的依赖注入

这篇具有很好参考价值的文章主要介绍了【C#/.NET】MAUI上的依赖注入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

        在移动应用开发中,依赖注入是一项非常重要的技术,它可以帮助我们简化代码结构、提高可维护性并增加测试覆盖率。在最新的.NET跨平台框架MAUI中,我们也可以利用依赖注入来构建高效的应用程序架构。本文将详细介绍在MAUI上如何使用依赖注入,旨在帮助开发者更好地理解和应用这一技术。

什么是依赖注入?

        依赖注入是一种设计模式,它通过将对象的创建和依赖关系的管理交给容器来简化应用程序的开发。依赖注入有助于解耦组件之间的依赖关系,使得代码更加灵活、可扩展并且易于测试。

为什么在MAUI上使用依赖注入?

        在MAUI中,应用程序需要处理各种不同的服务、组件和资源,而这些依赖关系的管理可能会变得非常复杂。使用依赖注入可以有效地解耦这些依赖关系,使得我们能够更加专注于应用程序的业务逻辑,而无需关注底层的实现细节。

如何在MAUI上使用依赖注入?

        首先创建好一个.NET MAUI项目之后,需要有以下前提条件

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="QuickCalc.App.MainPage">

    <Label VerticalTextAlignment="Center" 
           HorizontalTextAlignment="Center" 
           Text="{Binding LabelText}"/>

</ContentPage>

 

【C#/.NET】MAUI上的依赖注入
namespace QuickCalc.App.ViewModels;

public class LabelViewModel
{
    public string LabelText { get; set; } = "Hello World";
}

 

【C#/.NET】MAUI上的依赖注入

        我们通过依赖注入将LabelText属性绑定到Label的Text上。

 

 var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                    fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                });
#if DEBUG
        builder.Logging.AddDebug();
#endif

            return builder.Build();

 

【C#/.NET】MAUI上的依赖注入

第一步安装Microsoft.Extensions.DependencyInjection

Install-Package Microsoft.Extensions.DependencyInjection

 

【C#/.NET】MAUI上的依赖注入

第二步打开MauiProgram.cs

  public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                    fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                });
            //服务注册
            builder.Services.AddSingleton<MainPage>();
            builder.Services.AddSingleton<LabelViewModel>();
#if DEBUG
        builder.Logging.AddDebug();
#endif

            return builder.Build();
        }

 

【C#/.NET】MAUI上的依赖注入

        增加的两句服务注册

builder.Services.AddSingleton<MainPage>();
builder.Services.AddSingleton<LabelViewModel>();

 

【C#/.NET】MAUI上的依赖注入

第三步修改App.xaml.cs

  public partial class App : Application
  {
      public App(MainPage mainPage)
      {
          InitializeComponent();

          MainPage = mainPage;
      }
  }

 

【C#/.NET】MAUI上的依赖注入

        增加了MainPage的构造函数注入

第四步修改MainPage.xaml.cs

 public partial class MainPage : ContentPage
 {

     public MainPage(LabelViewModel labelViewModel)
     {
         InitializeComponent();
         BindingContext = labelViewModel;
     }
 }

 

【C#/.NET】MAUI上的依赖注入

        增加了LabelViewModel的构造函数注入以及BindingContext的赋值。

第五步运行程序

        至此,运行项目可以看到hello,World!已经在MAUI中继承了依赖【C#/.NET】MAUI上的依赖注入

 结论

        在MAUI上,依赖注入是一个非常有价值的技术,它可以帮助我们构建简洁、灵活和可测试的应用程序。通过合理地使用依赖注入,我们能够有效地管理和解耦组件之间的依赖关系,提高开发效率和代码质量。希望本文对您理解和应用MAUI上的依赖注入有所帮助!文章来源地址https://www.toymoban.com/news/detail-511407.html

到了这里,关于【C#/.NET】MAUI上的依赖注入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • .NET MAUI Android 对接商米移动手持终端打印JAVA SDK

    .NET MAUI Android 对接商米移动手持终端打印JAVA SDK

    因甲方需求,需要对现项目进行升级,需要增加移动手持终端进行巡检,巡检时还需要对商品进行抽检并打印热敏不干胶标签进行贴到抽样样品上。在这样的背景下便在JD进行了采样,进行技术性研究。本文章将一步一步教大家如何使用.NET MAUI 来集成java printerx 来实现使用M

    2024年02月05日
    浏览(9)
  • 【ASP.NET Core 基础知识】--依赖注入(DI)--什么是依赖注入

    依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦和管理类之间的依赖关系。它的核心思想是将原本需要在代码中显式创建的依赖关系,交给外部容器进行控制和管理。 具体来说,依赖注入的实现方式是通过将依赖对象的创建和维护责任转移到外部容器中,使

    2024年01月23日
    浏览(44)
  • .NET Core 依赖注入

    在.NET Core中,依赖注入(Dependency Injection,简称DI)是框架的一个重要特性,可以帮助我们解耦代码、管理对象生命周期以及提高可测试性等.一下是.NET Core中依赖注入的一些基本概念和用法: 1、服务(Service):在DI中,服务即一个对象或者类型。用于完成特定的功能.例如,数据库访

    2023年04月24日
    浏览(48)
  • .NET使用依赖注入,控制反转

    .NET 支持依赖项注入 (DI) 软件设计模式,这是一种在类及其依赖项之间实现 控制 (IoC) 的反转 的技术 避免有状态的、静态类和成员。 通过将应用设计为改用单一实例服务,避免创建全局状态。 避免在服务中直接实例化依赖类。 直接实例化会将代码耦合到特定实现。 不在服务

    2023年04月16日
    浏览(16)
  • .NET 通过源码深究依赖注入原理

    .NET 通过源码深究依赖注入原理

    依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。 Singleton服务为什么不能依赖Scoped服务? 多个构造函数的选择机制? 源码是如何识别循环

    2024年02月05日
    浏览(19)
  • .Net依赖注入神器Scrutor(上)

    从.Net Core 开始,.Net 平台内置了一个轻量,易用的 IOC 的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如: Autofac DryIOC Grace LightInject Lamar Stashbox Simple Injector 内置的依赖注入容器基本可以满足大多数应用的需求,除非你需要的特定功能不受它支

    2024年03月19日
    浏览(33)
  • .NET 6 整合 Autofac 依赖注入容器

    一行业务代码还没写,框架代码一大堆,不利于学习。 常看到java的学习资料或博客,标题一般为《SpringBoot 整合 XXX》,所以仿照着写了《.NET 6 整合 Autofac 依赖注入容器》这样一个标题。 以下是我自己的用法,可能不是最佳实践。 NuGet搜索并安装: Autofac Autofac.Extensions.Depe

    2023年04月26日
    浏览(17)
  • 【微软技术栈】C#.NET 依赖项注入

    多个构造函数发现规则 使用扩展方法注册服务组 框架提供的服务 服务生存期 服务注册方法 作用域验证 范围场景 .NET 支持依赖关系注入 (DI) 软件设计模式,这是一种在类及其依赖项之间实现控制反转 (IoC) 的技术。 .NET 中的依赖关系注入是框架的内置部分,与配置、日志记

    2024年02月03日
    浏览(14)
  • ASP.NET Core 依赖注入系列一

    ASP.NET Core 依赖注入系列一

    什么是ASP.NET Core 依赖注入? 依赖注入也称DI是一项技术用来实现对象松耦合以至于应用程序更容易维护,ASP.NET Core通过控制器的构造函数自动注入依赖的对象,我们创建ASP.NET Core MVC应用程序演示依赖注入特性是如何工作, 在这节中我们讲解该特性 1 例子 我们创建一个ASP.NET C

    2024年02月11日
    浏览(51)
  • ASP.NET WebApi 极简依赖注入

    ASP.NET WebApi 极简依赖注入

    .NET Core 7.0 ASP.NET Core Visual Studio 2022 .Net Core WebApi Redis消息订阅 ASP.NET Core 依赖注入最佳实践 简单来说就是 有效地设计服务及其依赖关系。 防止多线程问题。 防止内存泄漏。 防止潜在的错误。

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包