为 Audit.Net 创建一个独立的 ServiceProvider 并将其与 ASP.NET Core DI 集成。下面是代码示例:
public static class AuditNetExtensions
{
public static IServiceCollection AddAudit(this IServiceCollection services,
Action configure = null)
{
var auditCfg = new AuditConfiguration();
configure?.Invoke(auditCfg);
Audit.Core.Configuration.Setup()
.UseDynamicProvider(provider => provider.Configure(auditCfg))
.WithCreationPolicy(EventCreationPolicy.InsertOnStartReplaceOnEnd)
.ResetActions();
services.AddSingleton(_ => auditCfg);
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddScoped();
services.AddScoped();
services.AddScoped();
return services;
}
public static IApplicationBuilder UseAudit(this IApplicationBuilder app)
{
app.UseMiddleware();
return app;
}
}
在 Startup.cs 中使用如下代码调用:
services.AddAudit(config => config
.UseSqlServer(_configuration["ConnectionString"])
.WithCreationPolicy(EventCreationPolicy.InsertOnEnd)
.LogTo(_logger.LogAuditEvent));
这将为 Audit.Net 创建一个单独的 ServiceProvider 并将其与 ASP.NET Core DI 集成。
下一篇:Audit.Net无法追踪新值。