Injectio 使用教程
项目介绍
Injectio 是一个源代码生成器,旨在帮助在依赖注入的 ServiceCollection
中注册带有属性的服务。它支持多种服务注册类型,如 Transient、Singleton 和 Scoped,并且提供了灵活的注册策略。
项目快速启动
安装 Injectio
首先,通过 NuGet 安装 Injectio 包:
dotnet add package Injectio
注册服务
在你的项目中,使用注册属性标记类或方法:
[RegisterSingleton]
public class MySingletonService { }
[RegisterScoped]
public class MyScopedService { }
[RegisterTransient]
public class MyTransientService { }
配置服务集合
在 Startup.cs
或 Program.cs
中配置服务集合:
public void ConfigureServices(IServiceCollection services)
{
services.AddInjectio();
}
应用案例和最佳实践
使用标签进行服务注册
你可以通过标签来指定注册的服务:
[RegisterSingleton(Tags = "Client, FrontEnd")]
public class ServiceTag : IServiceTag { }
注册方法
你也可以标记一个方法来进行服务注册:
public static class ServiceRegistration
{
[RegisterServices]
public static void Register(IServiceCollection services, ISet<string> tags)
{
// 注册逻辑
}
}
典型生态项目
Injectio 可以与以下项目结合使用,以增强依赖注入的能力:
- Microsoft.Extensions.DependencyInjection: 提供标准的依赖注入框架。
- Autofac: 一个功能强大的依赖注入容器,可以与 Injectio 结合使用。
- MediatR: 一个简单的中介者模式实现,可以与 Injectio 结合使用以简化服务注册。
通过这些项目的结合使用,可以构建出更加健壮和灵活的应用程序。