Browse Source

Get attribute before optionsBuilder?.Invoke(options);

pull/8897/head
liangshiwei 5 years ago
parent
commit
2b0407d986
  1. 7
      framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs
  2. 3
      framework/src/Volo.Abp.MongoDB/Microsoft/Extensions/DependencyInjection/AbpMongoDbServiceCollectionExtensions.cs

7
framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs

@ -17,9 +17,6 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddMemoryCache();
var options = new AbpDbContextRegistrationOptions(typeof(TDbContext), services);
optionsBuilder?.Invoke(options);
services.TryAddTransient(DbContextOptionsFactory.Create<TDbContext>);
var replaceDbContextAttribute = typeof(TDbContext).GetCustomAttribute<ReplaceDbContextAttribute>(true);
if (replaceDbContextAttribute != null)
@ -27,6 +24,10 @@ namespace Microsoft.Extensions.DependencyInjection
options.ReplacedDbContextTypes.AddRange(replaceDbContextAttribute.ReplacedDbContextTypes);
}
optionsBuilder?.Invoke(options);
services.TryAddTransient(DbContextOptionsFactory.Create<TDbContext>);
foreach (var dbContextType in options.ReplacedDbContextTypes)
{
services.Replace(

3
framework/src/Volo.Abp.MongoDB/Microsoft/Extensions/DependencyInjection/AbpMongoDbServiceCollectionExtensions.cs

@ -13,7 +13,6 @@ namespace Microsoft.Extensions.DependencyInjection
where TMongoDbContext : AbpMongoDbContext
{
var options = new AbpMongoDbContextRegistrationOptions(typeof(TMongoDbContext), services);
optionsBuilder?.Invoke(options);
var replaceDbContextAttribute = typeof(TMongoDbContext).GetCustomAttribute<ReplaceDbContextAttribute>(true);
if (replaceDbContextAttribute != null)
@ -21,6 +20,8 @@ namespace Microsoft.Extensions.DependencyInjection
options.ReplacedDbContextTypes.AddRange(replaceDbContextAttribute.ReplacedDbContextTypes);
}
optionsBuilder?.Invoke(options);
foreach (var dbContextType in options.ReplacedDbContextTypes)
{
services.Replace(ServiceDescriptor.Transient(dbContextType, typeof(TMongoDbContext)));

Loading…
Cancel
Save