WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

独立观察员 2023 年 1 月 8 日

NuGet 包:

79b1398fe11f20857adc83b98ac3e44c.png

添加业务需要的接口及实现类:

8c3933211c091f8f8b3ee79da350b1e7.png

在 App 中声明服务提供者对象,以及添加服务等:

617ce9339610a797cde74eef705885a9.png

核心代码:

/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
    /// <summary>
    /// 服务提供者
    /// </summary>
    public static IServiceProvider ServiceProvider { get; private set; }

    public App()
    {
        IServiceCollection services = new ServiceCollection();
        //注入服务;
        services.AddSingleton<ITextService, TextService>();

        IServiceProvider serviceProvider = services.BuildServiceProvider();
        App.ServiceProvider = serviceProvider; //便于全局使用;
    }
}

方式一、通过构造函数注入并获取

29b85024a30ebc43461322befbc20d53.png

eda4703c4a93169b45919d8d8501f129.png

2fdf2a2317a22f765c0e38ef23ee7bc6.png

方式二、主动从容器中获取

d8db7dfddd1654418a611e5ec1f01729.png

测试 Demo:

3aba3fe52894ea69e022bfbed5d466e5.png

代码地址:https://gitee.com/dlgcy/DLGCY_WPFPractice/tree/Blog20230108

ChatGPT 的交谈

1、构造函数注入:

68be5d6a593da84e86d9c97d19063650.png

2、属性注入:

a73b7293a3e7244fc98a2be9f7ee4d61.png

3、方法注入:

f5ba4a9b0acf9f5dcf5050b362317f75.png

参考文章:

1、[.NET Core 3.0 中 WPF 使用 IOC 的图文教程](https://www.jb51.net/article/164134.htm)

2、ChatGPT

原创文章,转载请注明: 转载自 独立观察员

本文链接地址: WPF 依赖注入之 Microsoft.Extensions.DependencyInjection [http://dlgcy.com/wpf-dependency-injection/]

WPF

我向 ChatGPT 讨教了一下 WPF 中的行为 Behavior

使用通用附加属性来减少 WPF 元素自定义样式的多余代码

几十款 WPF 控件 - UI 库,总有一款适合你

WPF 用户控件分享之边上带输入框的圆圈

分享一个 WPF 气泡弹框

WPF 表单验证之 INotifyDataErrorlnfo 接口的使用示例

[翻译] WPF 中用户控件 DataContext/Binding 和依赖属性的问题

OxyPlot 导出图片及 WPF 元素导出为图片的方法

让 WPF 的 RadioButton 支持再次点击取消选中的功能

WPF DataGrid 如何将被选中行带到视野中

WPF 触屏事件后触发鼠标事件的问题及 DataGrid 误触问题

WPF DataGrid 通过自定义表头模拟首行固定

WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF

WPF 使用 Expression Design 画图导出及使用 Path 画图

WPF MVVM 弹框之等待框

解决 WPF 绑定集合后数据变动界面却不更新的问题(使用 ObservableCollection)

WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面

真・WPF 按钮拖动和调整大小

WPF MVVM 模式下的弹窗

WPF 让一组 Button 实现 RadioButton 的当前样式效果

WPF 原生绑定和命令功能使用指南

WPF 用户控件的自定义依赖属性在 MVVM 模式下的使用备忘

在WPF的MVVM模式中使用OCX组件

第三方库使用

WPF 表格控件 ReoGrid 的简单使用

OxyPlot.WPF 公共属性一览

OxyPlot.Wpf 图表控件使用备忘

Blazor

Blazor 初探

Blazor 中如何下载文件到浏览器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值