Make ObjectExtensionManager singleton, instead of static.

pull/3401/head
Halil İbrahim Kalkan 6 years ago
parent 6564d6d7e4
commit 805c3a2973

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

@ -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<Type, ObjectExtensionInfo> Extensions { get; }
public static ObjectExtensionManager Instance { get; } = new ObjectExtensionManager();
static ObjectExtensionManager()
private Dictionary<Type, ObjectExtensionInfo> Extensions { get; }
private ObjectExtensionManager()
{
Extensions = new Dictionary<Type, ObjectExtensionInfo>();
}
public static ObjectExtensionPropertyInfo AddProperty<TDto>(
public ObjectExtensionPropertyInfo AddProperty<TDto>(
string propertyName,
Action<ObjectExtensionPropertyInfo> configureAction = null)
{
@ -25,7 +26,7 @@ namespace Volo.Abp.ObjectExtending
return propertyInfo;
}
public static ImmutableList<ObjectExtensionPropertyInfo> GetProperties<TDto>()
public ImmutableList<ObjectExtensionPropertyInfo> GetProperties<TDto>()
where TDto : IHasExtraProperties
{
var extensionInfo = Extensions.GetOrDefault(typeof(TDto));

Loading…
Cancel
Save