Browse Source

Fix AbpLazyServiceProvider.LazyGetRequiredService

It should not return null, but throw exception if a service was not found.
pull/14879/head
Halil İbrahim Kalkan 4 years ago
parent
commit
70b69590a1
  1. 2
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/AbpLazyServiceProvider.cs
  2. 9
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/CachedServiceProviderBase.cs

2
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/AbpLazyServiceProvider.cs

@ -17,7 +17,7 @@ public class AbpLazyServiceProvider : CachedServiceProviderBase, IAbpLazyService
public virtual object LazyGetRequiredService(Type serviceType)
{
return GetService(serviceType);
return GetRequiredService(serviceType);
}
public virtual T LazyGetService<T>()

9
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/CachedServiceProviderBase.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Concurrent;
using Microsoft.Extensions.DependencyInjection;
namespace Volo.Abp.DependencyInjection;
@ -22,4 +23,12 @@ public abstract class CachedServiceProviderBase
_ => new Lazy<object>(() => ServiceProvider.GetService(serviceType))
).Value;
}
public virtual object GetRequiredService(Type serviceType)
{
return CachedServices.GetOrAdd(
serviceType,
_ => new Lazy<object>(() => ServiceProvider.GetRequiredService(serviceType))
).Value;
}
}

Loading…
Cancel
Save