/// <summary> /// Resolves a formatter for the specified type. The state of the provided OverrideFormatterSet /// has a primary affect on the chosen formatter. /// </summary> /// <param name="type"></param> /// <param name="formatters"></param> /// <returns></returns> public IValueFormatter Resolve(Type type, OverrideFormatterSet formatters = null) { if (formatters != null && formatters.Formatter != null) { return(formatters.Formatter); } if (ContainsKey(type)) { if (formatters != null && formatters.Any() && formatters.Contains(type)) { return(null); } return(this[type]); } foreach (var pair in this) { if (pair.Key.IsAssignableFrom(type)) { if (formatters != null && formatters.Any() && formatters.Contains(pair.Key)) { continue; } return(pair.Value); } } return(null); }
/// <summary> /// Resolves a formatter for the specified type. The state of the provided OverrideFormatterSet /// has a primary affect on the chosen formatter. /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="formatters"></param> /// <returns></returns> public IValueFormatter Resolve <TModel>(OverrideFormatterSet formatters = null) { return(Resolve(typeof(TModel), formatters)); }