EasilyNET.AutoDependencyInjection 1.0.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package EasilyNET.AutoDependencyInjection --version 1.0.5
                    
NuGet\Install-Package EasilyNET.AutoDependencyInjection -Version 1.0.5
                    
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.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EasilyNET.AutoDependencyInjection" Version="1.0.5" />
                    
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.0.5
                    
#r "nuget: EasilyNET.AutoDependencyInjection, 1.0.5"
                    
#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.0.5
                    
Install EasilyNET.AutoDependencyInjection as a Cake Addin
#tool nuget:?package=EasilyNET.AutoDependencyInjection&version=1.0.5
                    
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 net5.0 was computed.  net5.0-windows was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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.411.142 133 4/11/2025
4.25.409.92 152 4/9/2025
4.25.403.133 155 4/3/2025
4.25.319.113 151 3/19/2025
4.25.312.103 162 3/12/2025
4.25.227.135 107 2/27/2025
4.25.221.115 96 2/21/2025
4.25.212.95 116 2/12/2025
4.25.211.140 100 2/11/2025
4.25.124.223 99 1/24/2025
4.25.116.110 90 1/16/2025
4.25.115.121 58 1/15/2025
4.25.114.172 73 1/14/2025
4.25.109.111 71 1/9/2025
4.25.108.182 74 1/8/2025
4.25.108.160 71 1/8/2025
4.25.1.1 119 1/1/2025
3.24.1224.141 95 12/24/2024
3.24.1216.116 126 12/16/2024
3.24.1206.100 108 12/6/2024
3.24.1205.171 113 12/5/2024
3.24.1202.150 105 12/2/2024
3.24.1126.231 107 11/26/2024
3.24.1126.172 103 11/26/2024
3.24.1126.114 102 11/26/2024
3.24.1126.104 95 11/26/2024
3.24.1125.181 92 11/25/2024
3.24.1125.104 105 11/25/2024
3.24.1121.183 102 11/21/2024
3.24.1120.183 105 11/20/2024
3.24.1119.31 101 11/18/2024
3.24.1115.143 90 11/15/2024
3.24.1113.100 114 11/13/2024
3.24.1112.125 96 11/12/2024
3.24.1107.140 109 11/7/2024
3.24.1107.54 97 11/7/2024
3.24.1107.34 99 11/7/2024
3.24.1105.111 101 11/5/2024
3.24.1103.31 108 11/2/2024
3.24.1103 102 11/2/2024
3.24.1031.135 108 10/31/2024
3.24.1031.112 102 10/31/2024
3.24.1031.104 106 10/31/2024
3.24.1029.142 111 10/29/2024
3.24.1025.30 107 10/24/2024
3.24.1022.142 90 10/22/2024
3.24.1018.204 158 10/18/2024
3.24.1018.175 149 10/18/2024
3.24.1018.166 148 10/18/2024
3.24.1018.93 162 10/18/2024
3.24.1017.42 122 10/16/2024
3.24.1016.161 122 10/16/2024
3.24.1015.231 112 10/15/2024
3.24.1015.14 98 10/14/2024
3.24.1012.114 100 10/12/2024
3.24.1009.115 107 10/9/2024
3.24.1008.160 104 10/8/2024
3.24.1008.133 105 10/8/2024
3.24.1007.185 110 10/7/2024
3.24.1003.33 110 10/2/2024
3.24.1002.162 108 10/2/2024
3.24.929.143 105 9/29/2024
3.24.929.141 91 9/29/2024
3.24.929.131 108 9/29/2024
3.24.929.122 108 9/29/2024
3.24.926.184 109 9/26/2024
3.24.926.182 98 9/26/2024
3.24.926.175 105 9/26/2024
3.24.924.160 110 9/24/2024
3.24.924.133 116 9/24/2024
3.24.924.124 103 9/24/2024
3.24.924.10 110 9/23/2024
3.24.924.1 100 9/23/2024
3.24.923.234 104 9/23/2024
3.24.923.232 107 9/23/2024
3.24.923.155 112 9/23/2024
3.24.919.92 124 9/19/2024
3.24.914.125 131 9/14/2024
3.24.914.115 112 9/14/2024
3.24.914.111 116 9/14/2024
3.24.911.95 121 9/11/2024
3.24.908.215 108 9/8/2024
3.24.904.200 117 9/4/2024
3.24.828.163 141 8/28/2024
3.24.820.173 123 8/20/2024
3.24.814.92 145 8/14/2024
3.24.812.115 124 8/12/2024
3.24.802.100 80 8/2/2024
3.24.801.162 95 8/1/2024
3.24.801.160 86 8/1/2024
3.24.801.155 88 8/1/2024
3.24.801.153 136 8/1/2024
3.24.730.164 93 7/30/2024
3.24.730.91 89 7/30/2024
3.24.724.91 89 7/24/2024
3.24.718.105 104 7/18/2024
3.24.716.95 145 7/16/2024
3.24.712.94 124 7/12/2024
3.24.710.14 122 7/9/2024
3.24.709.105 128 7/9/2024
3.24.704.94 134 7/4/2024
3.24.701.90 119 7/1/2024
3.24.628.114 125 6/28/2024
3.24.627.145 124 6/27/2024
3.24.620.160 118 6/20/2024
3.24.613.115 111 6/13/2024
3.24.612.95 114 6/12/2024
3.24.528.90 118 5/28/2024
3.24.522.84 132 5/22/2024
3.24.512.213 119 5/12/2024
3.24.508.112 143 5/8/2024
2.2024.428.71 137 4/28/2024
2.2024.427.1128 126 4/27/2024
2.2.72 135 4/14/2024
2.2.71 113 4/12/2024
2.2.8 117 4/26/2024
2.2.6 132 4/10/2024
2.2.5 140 3/26/2024
2.2.4 126 3/25/2024
2.2.3 138 3/24/2024
2.2.2 131 3/21/2024
2.2.1 133 3/20/2024
2.2.0 156 3/13/2024
2.1.9 164 2/21/2024
2.1.8 139 2/18/2024
2.1.7 153 2/16/2024
2.1.6 169 2/14/2024
2.1.5 135 2/14/2024
2.1.4 161 2/9/2024
2.1.3 135 2/8/2024
2.1.2 188 2/5/2024
2.1.1.2 233 12/26/2023
2.1.1.1 132 12/26/2023
2.1.1 144 12/25/2023
2.1.0 161 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 133 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 222 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 146 3/28/2023
1.3.3 123 3/28/2023
1.3.2 156 3/26/2023
1.3.1 209 3/22/2023
1.3.0 149 3/21/2023
1.2.0 135 3/21/2023
1.1.0 148 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