diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj b/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj
index d1168a2f17..5ce18bc7f0 100644
--- a/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj
+++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpAspNetCoreComponentsModule.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpAspNetCoreComponentsModule.cs
index 9f45ee2b8a..e125ee5f8d 100644
--- a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpAspNetCoreComponentsModule.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpAspNetCoreComponentsModule.cs
@@ -3,9 +3,13 @@ using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Components.DependencyInjection;
using Volo.Abp.DynamicProxy;
using Volo.Abp.Modularity;
+using Volo.Abp.ObjectMapping;
namespace Volo.Abp.AspNetCore.Components
{
+ [DependsOn(
+ typeof(AbpObjectMappingModule)
+ )]
public class AbpAspNetCoreComponentsModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs
new file mode 100644
index 0000000000..94b61cdc66
--- /dev/null
+++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs
@@ -0,0 +1,48 @@
+using System;
+using Microsoft.AspNetCore.Components;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.ObjectMapping;
+
+namespace Volo.Abp.AspNetCore.Components
+{
+ public class AbpComponentBase : OwningComponentBase
+ {
+ //TODO: IStringLocalizer, CurrentUser, Logger, AuthorizationService
+
+ protected IObjectMapper ObjectMapper
+ {
+ get
+ {
+ if (_objectMapper != null)
+ {
+ return _objectMapper;
+ }
+
+ if (ObjectMapperContext == null)
+ {
+ return LazyGetRequiredService(ref _objectMapper);
+ }
+
+ return LazyGetRequiredService(
+ typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext),
+ ref _objectMapper
+ );
+ }
+ }
+
+ private IObjectMapper _objectMapper;
+ protected Type ObjectMapperContext { get; set; }
+
+ protected TService LazyGetRequiredService(ref TService reference) => LazyGetRequiredService(typeof(TService), ref reference);
+
+ protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference)
+ {
+ if (reference == null)
+ {
+ reference = (TRef)ScopedServices.GetRequiredService(serviceType);
+ }
+
+ return reference;
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
index 315cc42a73..5154c88cd1 100644
--- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
+++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
@@ -12,6 +12,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
+using Volo.Abp.AspNetCore.Components;
using Volo.Abp.AspNetCore.Components.WebAssembly;
using Volo.Abp.Authorization;
using Volo.Abp.ObjectMapping;
@@ -151,7 +152,7 @@ namespace Volo.Abp.BlazoriseUI
TListViewModel,
TCreateViewModel,
TUpdateViewModel>
- : OwningComponentBase
+ : AbpComponentBase
where TAppService : ICrudAppService<
TGetOutputDto,
TGetListOutputDto,
@@ -195,44 +196,6 @@ namespace Volo.Abp.BlazoriseUI
public bool HasUpdatePermission { get; set; }
public bool HasDeletePermission { get; set; }
- protected Type ObjectMapperContext { get; set; }
-
- protected IObjectMapper ObjectMapper
- {
- get
- {
- if (_objectMapper != null)
- {
- return _objectMapper;
- }
-
- if (ObjectMapperContext == null)
- {
- return LazyGetRequiredService(ref _objectMapper);
- }
-
- return LazyGetRequiredService(
- typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext),
- ref _objectMapper
- );
- }
- }
-
- private IObjectMapper _objectMapper;
-
- protected TService LazyGetRequiredService(ref TService reference)
- => LazyGetRequiredService(typeof(TService), ref reference);
-
- protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference)
- {
- if (reference == null)
- {
- reference = (TRef)ScopedServices.GetRequiredService(serviceType);
- }
-
- return reference;
- }
-
protected AbpCrudPageBase()
{
NewEntity = new TCreateViewModel();
@@ -297,7 +260,7 @@ namespace Volo.Abp.BlazoriseUI
{
limitedResultRequestInput.MaxResultCount = PageSize;
}
-
+
return Task.CompletedTask;
}