如何将服务注入 AuditingStore?

How to inject services into AuditingStore?

我已将 AuditingStore 替换为我自己的,以便我可以设置 CustomData 字段,效果很好。

public class MyAuditingStore : AuditingStore
{
    public MyAuditingStore(IRepository<AuditLog, long> auditLogRepository)
        : base(auditLogRepository)
    {
    }

    public override Task SaveAsync(AuditInfo auditInfo)
    {
        auditInfo.CustomData = "certain additional data that is not captured by default";
        return base.SaveAsync(auditInfo);
    }
}

但现在我想知道如何将服务注入 AuditingStore,以便我可以在 SaveAsync 期间检索其他信息。这是怎么做到的?

类似于您在其他地方注入服务的方式。

public class MyAuditingStore : AuditingStore
{
    private readonly OtherInformationService _otherInformationService;

    public MyAuditingStore(
        IRepository<AuditLog, long> auditLogRepository,
        OtherInformationService otherInformationService)
        : base(auditLogRepository)
    {
        _otherInformationService = otherInformationService;
    }

    public override Task SaveAsync(AuditInfo auditInfo)
    {
        auditInfo.CustomData = otherInformationService.GetOtherInformation();
        return base.SaveAsync(auditInfo);
    }
}

public class OtherInformationService : ITransientDependency
{
    public string GetOtherInformation()
    {
        return "other information";
    }
}