/// <summary> /// Adds mapping of property of type <paramref name="propertyType"/> to <paramref name="updater"/>. /// </summary> /// <param name="propertType">Type of property to be updated by <paramref name="updater"/>.</param> /// <param name="updater">Updater to be used at properties of type <paramref name="propertyType"/>.</param> /// <returns>Self (for fluency).</returns> public ReflectionValueUpdaterCollection Add(Type propertType, IReflectionValueUpdater updater) { Ensure.NotNull(propertType, "propertType"); Ensure.NotNull(updater, "updater"); storage[propertType] = updater; return(this); }
/// <summary> /// Creates new instance with support for updating values of readonly properties. /// </summary> /// <param name="model">Instance of model. Can't be <c>null</c>.</param> /// <param name="valueUpdater">Readonly property value updater. Can't be <c>null</c>.</param> public ReflectionModelValueProvider(TModel model, IReflectionValueUpdater valueUpdater, IConverterRepository converters) { Ensure.NotNull(model, "model"); Ensure.NotNull(valueUpdater, "valueUpdater"); Ensure.NotNull(converters, "converters"); Model = model; ModelType = model.GetType(); ValueUpdater = valueUpdater; Converters = converters; }
/// <summary> /// Creates new instance with support for updating values of readonly properties. /// </summary> /// <param name="model">Instance of model. Can't be <c>null</c>.</param> /// <param name="valueUpdater">Readonly property value updater. Can't be <c>null</c>.</param> public ReflectionModelValueProvider(TModel model, IReflectionValueUpdater valueUpdater) : this(model, valueUpdater, Converts.Repository) { }
/// <summary> /// Adds mapping of property of type <typeparamref name="T"/> to <paramref name="updater"/>. /// </summary> /// <typeparam name="T">Type of property to be updated by <paramref name="updater"/>.</typeparam> /// <param name="collection">Target updaters collection.</param> /// <param name="updater">Updater to be used at properties of type <typeparamref name="T"/>.</param> /// <returns>Self (for fluency).</returns> public static ReflectionValueUpdaterCollection Add <T>(this ReflectionValueUpdaterCollection collection, IReflectionValueUpdater updater) { Ensure.NotNull(collection, "collection"); return(collection.Add(typeof(T), updater)); }