public static ImmutableList <ObjectExtensionPropertyInfo> GetProperties( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] Type objectType) { Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); Check.NotNull(objectType, nameof(objectType)); var extensionInfo = objectExtensionManager.GetOrNull(objectType); if (extensionInfo == null) { return(EmptyPropertyList); } return(extensionInfo.GetProperties()); }
public static ObjectExtensionManager AddOrUpdateProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] Type objectType, [NotNull] Type propertyType, [NotNull] string propertyName, [CanBeNull] Action <ObjectExtensionPropertyInfo> configureAction = null) { Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); return(objectExtensionManager.AddOrUpdate( objectType, options => { options.AddOrUpdateProperty( propertyType, propertyName, configureAction ); })); }
public static ObjectExtensionManager AddOrUpdateProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] Type[] objectTypes, [NotNull] Type propertyType, [NotNull] string propertyName, [CanBeNull] Action <ObjectExtensionPropertyInfo> configureAction = null) { Check.NotNull(objectTypes, nameof(objectTypes)); foreach (var objectType in objectTypes) { objectExtensionManager.AddOrUpdateProperty( objectType, propertyType, propertyName, configureAction ); } return(objectExtensionManager); }
public static ImmutableList <ObjectExtensionPropertyInfo> GetProperties <TObject>( [NotNull] this ObjectExtensionManager objectExtensionManager) { return(objectExtensionManager.GetProperties(typeof(TObject))); }