public static void AddFormatPlug(this HttpConfiguration config, IFormatPlug formatPlug, string queryStringParameterName = null) { if (formatPlug == null) throw new ArgumentNullException("formatPlug"); if (_FormatPlugs.Count == 0) { config.SupportMediaTypeShortMapping(queryStringParameterName); _PseudoFormatter = new PseudoMediaTypeFormatter(config.Formatters.JsonFormatter); config.Formatters.Add(_PseudoFormatter); } else if (_FormatPlugs.Contains(formatPlug)) return; _FormatPlugs.Add(formatPlug); if (!_PseudoFormatter.SupportedMediaTypes.Contains(formatPlug.DefaultMediaType)) _PseudoFormatter.SupportedMediaTypes.Add(formatPlug.DefaultMediaType); foreach (var mediaType in formatPlug.SupportedMediaTypes) if (!_PseudoFormatter.SupportedMediaTypes.Contains(mediaType)) _PseudoFormatter.SupportedMediaTypes.Add(mediaType); _PseudoFormatter.AddMediaTypeMapping(formatPlug.FormatShortName, formatPlug.DefaultMediaType, queryStringParameterName); }
public static void AddFormatPlug(this HttpConfiguration config, IFormatPlug formatPlug, string queryStringParameterName = null) { if (formatPlug == null) { throw new ArgumentNullException("formatPlug"); } if (_FormatPlugs.Count == 0) { // config.SupportMediaTypeShortMapping(queryStringParameterName); _PseudoFormatter = new PseudoMediaTypeFormatter(config.Formatters.JsonFormatter); config.Formatters.Add(_PseudoFormatter); } else if (_FormatPlugs.Contains(formatPlug)) { return; } _FormatPlugs.Add(formatPlug); if (!_PseudoFormatter.SupportedMediaTypes.Contains(formatPlug.DefaultMediaType)) { _PseudoFormatter.SupportedMediaTypes.Add(formatPlug.DefaultMediaType); } foreach (var mediaType in formatPlug.SupportedMediaTypes) { if (!_PseudoFormatter.SupportedMediaTypes.Contains(mediaType)) { _PseudoFormatter.SupportedMediaTypes.Add(mediaType); } } _PseudoFormatter.AddMediaTypeMapping(formatPlug.FormatShortName, formatPlug.DefaultMediaType, queryStringParameterName); }