一篇.NET C#开发有关依赖注入的 入门级编程代码实例

编程开发
118
依赖注入
代码例子
编程示例
代码实例

干了这么多年开发,依然感觉自己是个菜鸟程序员永远都是半桶水,最近又接触到了依赖注入,回首前几年写得都是些啥玩意,真正用起来了,结合MVVM这类模式开发效率不是快了一星半点,下面是一个关于依赖注入的简单入门实例 可以用于控制台和wpf以及winform桌面编程,新手可以看看。

一篇.NET C#开发有关依赖注入的 入门级编程代码实例

当涉及到依赖注入(Dependency Injection,简称DI)时,.NET C#开发提供了许多优雅且灵活的解决方案。下面是一个入门级的C#编程示例,演示了如何使用依赖注入来解耦应用程序中的组件。

假设我们正在开发一个简单的日志记录器,它可以记录消息到不同的目标,例如控制台和文件。我们将创建一个ILogger接口来定义日志记录的功能,并实现两个具体的日志记录器类:ConsoleLogger和FileLogger。

首先,我们需要定义ILogger接口:

public interface ILogger
{
    void Log(string message);
}

接下来,我们实现ConsoleLogger:

public class ConsoleLogger : ILogger
{
    public void Log(string message)
    {
        Console.WriteLine("ConsoleLogger: " + message);
    }
}

然后,我们实现FileLogger:

public class FileLogger : ILogger
{
    public void Log(string message)
    {
        // 将消息写入文件
        using (var writer = new StreamWriter("log.txt", true))
        {
            writer.WriteLine("FileLogger: " + message);
        }
    }
}

现在,我们将使用依赖注入将日志记录器注入到我们的应用程序中。为此,我们将使用.NET内置的依赖注入容器(Dependency Injection Container)。

using Microsoft.Extensions.DependencyInjection;

public class Program
{
    public static void Main()
    {
        // 创建依赖注入容器
        var serviceProvider = new ServiceCollection()
            .AddSingleton() // 注册ConsoleLogger作为ILogger的实现
            .BuildServiceProvider();
        // 从容器中解析ILogger实例
        var logger = serviceProvider.GetService();
        // 使用ILogger进行日志记录
        logger.Log("Hello, Dependency Injection!");
        // 当需要切换到FileLogger时,只需修改注册的实现类型
        serviceProvider = new ServiceCollection()
            .AddSingleton() // 注册FileLogger作为ILogger的实现
            .BuildServiceProvider();
        logger = serviceProvider.GetService();
        logger.Log("Logging to a file now!");
    }
}

在上述示例中,例子创建了一个ServiceProvider对象,并使用AddSingleton方法将ILogger接口与ConsoleLogger实现关联起来。然后使用GetService方法从容器中解析ILogger实例,并使用它来记录日志消息。

如果我们想切换到使用FileLogger,我们只需要修改依赖注入容器的注册部分即可。

 .NET 5 依赖注入AddTransient瞬时模式简单例子
暂无相关内容...
暂无相关内容...
暂无章节内容...
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删