EasilyNET.AutoDependencyInjection 1.9.0-preview1

This is a prerelease version of EasilyNET.AutoDependencyInjection.
There is a newer version of this package available.
See the version list below for details.
dotnet add package EasilyNET.AutoDependencyInjection --version 1.9.0-preview1
                    
NuGet\Install-Package EasilyNET.AutoDependencyInjection -Version 1.9.0-preview1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EasilyNET.AutoDependencyInjection" Version="1.9.0-preview1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EasilyNET.AutoDependencyInjection" Version="1.9.0-preview1" />
                    
Directory.Packages.props
<PackageReference Include="EasilyNET.AutoDependencyInjection" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EasilyNET.AutoDependencyInjection --version 1.9.0-preview1
                    
#r "nuget: EasilyNET.AutoDependencyInjection, 1.9.0-preview1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=EasilyNET.AutoDependencyInjection&version=1.9.0-preview1&prerelease
                    
Install EasilyNET.AutoDependencyInjection as a Cake Addin
#tool nuget:?package=EasilyNET.AutoDependencyInjection&version=1.9.0-preview1&prerelease
                    
Install EasilyNET.AutoDependencyInjection as a Cake Tool
EasilyNET.AutoDependencyInjection

自动注入模块,参考 ABP 的代码实现.

如何使用
  • 使用 Nuget 包管理工具添加依赖包 EasilyNET.AutoDependencyInjection
  • a.使用特性注入服务
[DependencyInjection(ServiceLifetime.Singleton, AddSelf = true)]
public class XXXService : IXXXService
{
    // TODO: do something
    Console.WriteLine("使用特性注入服务");
    ...
}
  • b.使用接口的方式,继承 IScopedDependency, ISingletonDependency, ITransientDependency
/// <summary>
/// 测试模块
/// </summary>
public class MyTestModule : ITest, IScopedDependency
{
    /// <summary>
    /// Show
    /// </summary>
    public void Show()
    {
        Console.WriteLine("Test");
    }
}

/// <summary>
/// 测试
/// </summary>
//[IgnoreDependency]
public interface ITest
{
    /// <summary>
    /// Show函数
    /// </summary>
    void Show();
}

// 在其他地方获取服务,并执行方法
var test = context.Services.GetService<MyTestModule>();
test?.Show();
...
  • 3.继承 AppModule 类,然后显示加入到 AppWebModule 配置中
  • Step1.创建 CorsModule.cs
// 这里以跨域服务注册为例
/// <summary>
/// 配置跨域服务及中间件
/// </summary>
public class CorsModule : AppModule
{
    /// <summary>
    /// 注册和配置服务
    /// </summary>
    /// <param name="context"></param>
    public override void ConfigureServices(ConfigureServicesContext context)
    {
        var config = context.Services.GetConfiguration();
        var allow = config["AllowedHosts"] ?? "*";
        _ = context.Services.AddCors(c => c.AddPolicy("AllowedHosts", s => s.WithOrigins(allow.Split(",")).AllowAnyMethod().AllowAnyHeader()));
    }
    /// <summary>
    /// 注册中间件
    /// </summary>
    /// <param name="context"></param>
    public override void ApplicationInitialization(ApplicationContext context)
    {
        var app = context.GetApplicationBuilder();
        _ = app.UseCors("AllowedHosts");
    }
}
  • Step2.创建 AppWebModule.cs
/**
 * 要实现自动注入,一定要在这个地方添加
 */
[DependsOn(
    typeof(DependencyAppModule),
    typeof(CorsModule)
)]
public class AppWebModule : AppModule
{
    /// <summary>
    /// 注册和配置服务
    /// </summary>
    /// <param name="context"></param>
    public override void ConfigureServices(ConfigureServicesContext context)
    {
        base.ConfigureServices(context);
        _ = context.Services.AddHttpContextAccessor();
    }
    /// <summary>
    /// 注册中间件
    /// </summary>
    /// <param name="context"></param>
    public override void ApplicationInitialization(ApplicationContext context)
    {
        base.ApplicationInitialization(context);
        var app = context.GetApplicationBuilder();
        _ = app.UseAuthorization();
        // 这里可添加自己的中间件
    }
}
  • Step3.最后再 Program.cs 中添加如下内容.
// Add services to the container.
// 自动注入服务模块
builder.Services.AddApplication<AppWebModule>();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment()) _ = app.UseDeveloperExceptionPage();

// 添加自动化注入的一些中间件.
app.InitializeApplication();

app.MapControllers();

app.Run();
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.25.513.101 0 5/13/2025
4.25.506.150 138 5/6/2025
4.25.429.162 127 4/29/2025
4.25.429.103 152 4/29/2025
4.25.411.142 140 4/11/2025
4.25.409.92 156 4/9/2025
4.25.403.133 160 4/3/2025
4.25.319.113 156 3/19/2025
4.25.312.103 167 3/12/2025
4.25.227.135 111 2/27/2025
4.25.221.115 101 2/21/2025
4.25.212.95 120 2/12/2025
4.25.211.140 105 2/11/2025
4.25.124.223 103 1/24/2025
4.25.116.110 96 1/16/2025
4.25.115.121 62 1/15/2025
4.25.114.172 77 1/14/2025
4.25.109.111 75 1/9/2025
4.25.108.182 78 1/8/2025
4.25.108.160 75 1/8/2025
4.25.1.1 123 1/1/2025
3.24.1224.141 99 12/24/2024
3.24.1216.116 130 12/16/2024
3.24.1206.100 112 12/6/2024
3.24.1205.171 117 12/5/2024
3.24.1202.150 109 12/2/2024
3.24.1126.231 111 11/26/2024
3.24.1126.172 107 11/26/2024
3.24.1126.114 106 11/26/2024
3.24.1126.104 99 11/26/2024
3.24.1125.181 96 11/25/2024
3.24.1125.104 110 11/25/2024
3.24.1121.183 106 11/21/2024
3.24.1120.183 109 11/20/2024
3.24.1119.31 105 11/18/2024
3.24.1115.143 94 11/15/2024
3.24.1113.100 118 11/13/2024
3.24.1112.125 100 11/12/2024
3.24.1107.140 113 11/7/2024
3.24.1107.54 101 11/7/2024
3.24.1107.34 103 11/7/2024
3.24.1105.111 105 11/5/2024
3.24.1103.31 112 11/2/2024
3.24.1103 106 11/2/2024
3.24.1031.135 112 10/31/2024
3.24.1031.112 106 10/31/2024
3.24.1031.104 110 10/31/2024
3.24.1029.142 115 10/29/2024
3.24.1025.30 111 10/24/2024
3.24.1022.142 94 10/22/2024
3.24.1018.204 162 10/18/2024
3.24.1018.175 153 10/18/2024
3.24.1018.166 152 10/18/2024
3.24.1018.93 166 10/18/2024
3.24.1017.42 126 10/16/2024
3.24.1016.161 126 10/16/2024
3.24.1015.231 116 10/15/2024
3.24.1015.14 102 10/14/2024
3.24.1012.114 104 10/12/2024
3.24.1009.115 111 10/9/2024
3.24.1008.160 109 10/8/2024
3.24.1008.133 109 10/8/2024
3.24.1007.185 114 10/7/2024
3.24.1003.33 114 10/2/2024
3.24.1002.162 112 10/2/2024
3.24.929.143 109 9/29/2024
3.24.929.141 95 9/29/2024
3.24.929.131 112 9/29/2024
3.24.929.122 112 9/29/2024
3.24.926.184 113 9/26/2024
3.24.926.182 102 9/26/2024
3.24.926.175 109 9/26/2024
3.24.924.160 114 9/24/2024
3.24.924.133 120 9/24/2024
3.24.924.124 107 9/24/2024
3.24.924.10 114 9/23/2024
3.24.924.1 104 9/23/2024
3.24.923.234 108 9/23/2024
3.24.923.232 112 9/23/2024
3.24.923.155 116 9/23/2024
3.24.919.92 128 9/19/2024
3.24.914.125 135 9/14/2024
3.24.914.115 116 9/14/2024
3.24.914.111 120 9/14/2024
3.24.911.95 125 9/11/2024
3.24.908.215 112 9/8/2024
3.24.904.200 121 9/4/2024
3.24.828.163 145 8/28/2024
3.24.820.173 127 8/20/2024
3.24.814.92 149 8/14/2024
3.24.812.115 128 8/12/2024
3.24.802.100 84 8/2/2024
3.24.801.162 99 8/1/2024
3.24.801.160 90 8/1/2024
3.24.801.155 92 8/1/2024
3.24.801.153 140 8/1/2024
3.24.730.164 97 7/30/2024
3.24.730.91 93 7/30/2024
3.24.724.91 93 7/24/2024
3.24.718.105 108 7/18/2024
3.24.716.95 151 7/16/2024
3.24.712.94 128 7/12/2024
3.24.710.14 126 7/9/2024
3.24.709.105 132 7/9/2024
3.24.704.94 138 7/4/2024
3.24.701.90 123 7/1/2024
3.24.628.114 129 6/28/2024
3.24.627.145 128 6/27/2024
3.24.620.160 122 6/20/2024
3.24.613.115 115 6/13/2024
3.24.612.95 118 6/12/2024
3.24.528.90 122 5/28/2024
3.24.522.84 136 5/22/2024
3.24.512.213 123 5/12/2024
3.24.508.112 147 5/8/2024
2.2024.428.71 141 4/28/2024
2.2024.427.1128 130 4/27/2024
2.2.72 139 4/14/2024
2.2.71 117 4/12/2024
2.2.8 121 4/26/2024
2.2.6 136 4/10/2024
2.2.5 145 3/26/2024
2.2.4 131 3/25/2024
2.2.3 143 3/24/2024
2.2.2 136 3/21/2024
2.2.1 138 3/20/2024
2.2.0 161 3/13/2024
2.1.9 168 2/21/2024
2.1.8 143 2/18/2024
2.1.7 157 2/16/2024
2.1.6 173 2/14/2024
2.1.5 139 2/14/2024
2.1.4 165 2/9/2024
2.1.3 139 2/8/2024
2.1.2 193 2/5/2024
2.1.1.2 237 12/26/2023
2.1.1.1 136 12/26/2023
2.1.1 148 12/25/2023
2.1.0 165 12/17/2023
2.0.11 207 12/6/2023
2.0.1 208 11/15/2023
2.0.0 160 11/14/2023
1.9.1 174 11/1/2023
1.9.0 146 10/19/2023
1.9.0-preview2 354 10/12/2023
1.9.0-preview1 112 10/12/2023
1.8.9 191 10/11/2023
1.8.8 183 10/11/2023
1.8.7-rc2 144 9/21/2023
1.8.7-rc1 134 9/12/2023
1.8.6 185 8/31/2023
1.8.5 884 8/25/2023
1.8.4 175 8/24/2023
1.8.3 198 8/23/2023
1.8.2 268 8/22/2023
1.8.1 209 8/18/2023
1.8.0 200 8/15/2023
1.7.9 233 8/11/2023
1.7.8 176 8/11/2023
1.7.7 189 8/10/2023
1.7.6 203 8/9/2023
1.7.5 254 8/9/2023
1.7.4 290 8/3/2023
1.7.3 197 8/1/2023
1.7.2 191 7/31/2023
1.7.1 189 7/27/2023
1.7.0 206 7/25/2023
1.6.9 186 7/25/2023
1.6.8 196 7/24/2023
1.6.7 218 7/20/2023
1.6.6 216 7/19/2023
1.6.5 190 7/19/2023
1.6.4 193 7/17/2023
1.6.3 167 7/17/2023
1.6.2 223 7/12/2023
1.6.1 232 6/30/2023
1.6.0 164 6/26/2023
1.5.9 179 6/22/2023
1.5.8 188 6/15/2023
1.5.7.1 188 6/14/2023
1.5.7 185 6/14/2023
1.5.6.2 241 6/7/2023
1.5.6.1 169 6/7/2023
1.5.6 169 6/7/2023
1.5.5.2 228 5/26/2023
1.5.5.1 187 5/26/2023
1.5.5 185 5/26/2023
1.5.4.4 198 5/25/2023
1.5.4.3 241 5/23/2023
1.5.4.2 307 5/17/2023
1.5.4.1 197 5/16/2023
1.5.4 273 5/11/2023
1.5.3 194 5/11/2023
1.5.2 137 5/10/2023
1.5.1 135 5/10/2023
1.5.0 178 5/6/2023
1.4.0 133 5/5/2023
1.3.9 144 4/23/2023
1.3.8.6 127 4/23/2023
1.3.8.5 136 4/21/2023
1.3.8.1 202 4/12/2023
1.3.8 142 4/11/2023
1.3.7 168 4/9/2023
1.3.6.3 224 4/1/2023
1.3.6.2 140 3/31/2023
1.3.6.1 141 3/31/2023
1.3.6 114 3/31/2023
1.3.5 138 3/30/2023
1.3.4.1 201 3/29/2023
1.3.4 147 3/28/2023
1.3.3 123 3/28/2023
1.3.2 157 3/26/2023
1.3.1 210 3/22/2023
1.3.0 149 3/21/2023
1.2.0 135 3/21/2023
1.1.0 149 3/17/2023
1.0.9 145 3/15/2023
1.0.8 148 3/15/2023
1.0.7 126 3/15/2023
1.0.6 145 3/13/2023
1.0.5 150 3/13/2023
1.0.4 126 3/13/2023
1.0.3 216 2/26/2023
1.0.2 136 2/26/2023
1.0.1 148 2/23/2023
1.0.0 307 2/20/2023