WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

独立观察员 2023年1月8日

NuGet 包:

%title插图%num

 

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

%title插图%num

 

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

%title插图%num

 

核心代码:

/// <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; //便于全局使用;
    }
}

 

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

%title插图%num

%title插图%num

%title插图%num

 

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

%title插图%num

 

测试 Demo:

%title插图%num

 

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

 

ChatGPT 的交谈

1、构造函数注入:

%title插图%num

 

2、属性注入:

%title插图%num

 

3、方法注入:

%title插图%num

 

参考文章:

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

2、ChatGPT

 

发表评论