From 805c3a2973067f1278cce1505943829d969e24a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 27 Mar 2020 21:00:05 +0300 Subject: [PATCH] Make ObjectExtensionManager singleton, instead of static. --- .../AbpAutoMapperExtensibleDtoExtensions.cs | 2 +- .../Abp/ObjectExtending/ObjectExtensionManager.cs | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) 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));