diff --git a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs b/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs index a0a7648337..e305cbce8a 100644 --- a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs +++ b/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs @@ -11,7 +11,7 @@ namespace AutoMapper where TDestination : IHasExtraProperties where TSource : IHasExtraProperties { - var properties = ObjectExtensionManager.GetProperties(); + var properties = ObjectExtensionManager.Instance.GetProperties(); return mappingExpression .ForMember( x => x.ExtraProperties, diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs index 7a8701c9bf..c266964bc3 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs @@ -5,17 +5,18 @@ using Volo.Abp.Data; namespace Volo.Abp.ObjectExtending { - public static class ObjectExtensionManager + public class ObjectExtensionManager { - //TODO: Concurrent, to allow extend on runtime! - private static Dictionary Extensions { get; } + public static ObjectExtensionManager Instance { get; } = new ObjectExtensionManager(); - static ObjectExtensionManager() + private Dictionary Extensions { get; } + + private ObjectExtensionManager() { Extensions = new Dictionary(); } - public static ObjectExtensionPropertyInfo AddProperty( + public ObjectExtensionPropertyInfo AddProperty( string propertyName, Action configureAction = null) { @@ -25,7 +26,7 @@ namespace Volo.Abp.ObjectExtending return propertyInfo; } - public static ImmutableList GetProperties() + public ImmutableList GetProperties() where TDto : IHasExtraProperties { var extensionInfo = Extensions.GetOrDefault(typeof(TDto));