Browse Source

Make ObjectExtensionManager singleton, instead of static.

pull/3401/head
Halil İbrahim Kalkan 7 years ago
parent
commit
805c3a2973
  1. 2
      framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs
  2. 13
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs

2
framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs

@ -11,7 +11,7 @@ namespace AutoMapper
where TDestination : IHasExtraProperties where TDestination : IHasExtraProperties
where TSource : IHasExtraProperties where TSource : IHasExtraProperties
{ {
var properties = ObjectExtensionManager.GetProperties<TDestination>(); var properties = ObjectExtensionManager.Instance.GetProperties<TDestination>();
return mappingExpression return mappingExpression
.ForMember( .ForMember(
x => x.ExtraProperties, x => x.ExtraProperties,

13
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs

@ -5,17 +5,18 @@ using Volo.Abp.Data;
namespace Volo.Abp.ObjectExtending namespace Volo.Abp.ObjectExtending
{ {
public static class ObjectExtensionManager public class ObjectExtensionManager
{ {
//TODO: Concurrent, to allow extend on runtime! public static ObjectExtensionManager Instance { get; } = new ObjectExtensionManager();
private static Dictionary<Type, ObjectExtensionInfo> Extensions { get; }
static ObjectExtensionManager() private Dictionary<Type, ObjectExtensionInfo> Extensions { get; }
private ObjectExtensionManager()
{ {
Extensions = new Dictionary<Type, ObjectExtensionInfo>(); Extensions = new Dictionary<Type, ObjectExtensionInfo>();
} }
public static ObjectExtensionPropertyInfo AddProperty<TDto>( public ObjectExtensionPropertyInfo AddProperty<TDto>(
string propertyName, string propertyName,
Action<ObjectExtensionPropertyInfo> configureAction = null) Action<ObjectExtensionPropertyInfo> configureAction = null)
{ {
@ -25,7 +26,7 @@ namespace Volo.Abp.ObjectExtending
return propertyInfo; return propertyInfo;
} }
public static ImmutableList<ObjectExtensionPropertyInfo> GetProperties<TDto>() public ImmutableList<ObjectExtensionPropertyInfo> GetProperties<TDto>()
where TDto : IHasExtraProperties where TDto : IHasExtraProperties
{ {
var extensionInfo = Extensions.GetOrDefault(typeof(TDto)); var extensionInfo = Extensions.GetOrDefault(typeof(TDto));

Loading…
Cancel
Save