C# 中的依赖注入2025年03月24日 | 阅读 5 分钟 在本文中,您将通过它们的类型和示例了解 C# 中的十进制注入。 什么是依赖注入?依赖注入或DI是 C# 和其他编程语言中一种流行的设计模式。它是一种类别的依赖项在类外部获得而不是在类内部开发的获取依赖项的方法。它鼓励组件之间的松耦合,提高了代码的灵活性、可测试性和可维护性。 换句话说,这些需求是从外部源(通常通过构造函数、setter 方法或接口)提供给对象的,而不是对象创建其依赖项或依赖于全局状态。它支持更模块化、可测试和可维护的编程,因为对象可以轻松地单独替换或测试。 使用框架或容器来处理依赖项注入是面向对象编程中实现依赖注入的常用方法。 C# 中依赖注入的类型在 C# 中,有三种不同类型的依赖注入。
构造器注入在 C# 中,构造函数注入是一种依赖注入(DI),其中一个类通过其构造函数接收依赖项。这种方法提供了更好的可测试性和封装性,它确保类在实例化时拥有所有依赖项。 示例 让我们以一个示例来说明 C# 中使用构造函数进行依赖注入。 输出 Sending email to: [email protected] Subject: Notification Body: This is a test notification of mail. 说明 此 C# 代码演示了依赖注入的构造函数注入。EmailService 提供了一个实际实现,首先有一个定义电子邮件服务合同的 IEmailServices 接口。NotificationService 通过在构造函数中传递 IEmailServices 的实例作为参数来演示构造函数注入。通过创建 EmailService 的实例并将其传递给 Main 方法中的 NotificationService 构造函数,将电子邮件服务依赖项注入到 NotificationService 构造函数中。最后,使用注入的依赖项在 notificationService 上执行 NotifyUser 方法,并使用给定的用户电子邮件和消息发送电子邮件通知。 属性注入在 C# 中,属性注入是另一种依赖注入(DI),其中一个类通过公共属性接收依赖项。与通过构造函数提供依赖项的构造函数注入不同,属性注入可以在对象创建后指定依赖项。 示例 让我们以一个示例来说明 C# 中使用属性注入进行依赖注入。 输出 Do Everything in Love.. 说明 在此示例中,此代码演示了使用属性注入进行依赖注入。首先,使用 an ILogger 接口来描述日志记录需求,ConsoleLogger 用于提供特定实现。由于 MyDemoClass 封装了一个 ILogger 类型的 Logger 属性,因此可以从外部注入依赖项。ConsoleLogger 对象被分配给 Main 方法中生成的 MyDemoClass 实例的 Logger 属性。最后,DoSomething 方法使用注入的日志记录器将消息“Do everything in love..”打印到控制台。 方法注入C# 中另一种依赖注入(DI)类型称为方法注入,其中依赖项作为参数传递给方法。这种方法不是在类级别注入依赖项,而是允许根据需要将它们提供给特定方法,从而提供更细粒度的依赖注入控制。 示例 让我们以一个示例来说明 C# 中使用方法注入进行依赖注入。 输出 Do Everything in Love... 说明 此 C# 代码演示了通过方法注入进行依赖注入(DI)。首先定义一个 ILogger 接口来抽象日志记录功能。然后,ConsoleLogger 实现此接口以将消息记录到控制台。MyDemoClass 封装了 DoSomething 方法,该方法通过将 ILogger 对象作为参数来允许从外部注入依赖项。在 Main 方法中创建一个 ConsoleLogger 对象,并将其作为参数传递给 MyDemoClass DoSomething 方法,以演示如何将依赖项注入到类中。 下一个主题Python 和 C# 的区别 |
我们请求您订阅我们的新闻通讯以获取最新更新。