/// <summary> /// Adds a type representing an <see cref="IFilterMetadata"/> to a filter collection. /// </summary> /// <param name="filters">A collection of <see cref="IFilterMetadata"/>.</param> /// <param name="filterType">Type representing an <see cref="IFilterMetadata"/>.</param> /// <param name="order">The order of the added filter.</param> /// <returns>An <see cref="IFilterMetadata"/> representing the added service type.</returns> /// <remarks> /// Filter instances will created through dependency injection. Use /// <see cref="AddService(ICollection{IFilterMetadata}, Type)"/> to register a service that will be created via /// type activation. /// </remarks> public static IFilterMetadata AddService( [NotNull] this ICollection <IFilterMetadata> filters, [NotNull] Type filterType, int order) { if (!typeof(IFilterMetadata).GetTypeInfo().IsAssignableFrom(filterType.GetTypeInfo())) { var message = Resources.FormatTypeMustDeriveFromType(filterType.FullName, typeof(IFilterMetadata).FullName); throw new ArgumentException(message, nameof(filterType)); } var filter = new ServiceFilterAttribute(filterType) { Order = order }; filters.Add(filter); return(filter); }
/// <summary> /// Adds a type representing an <see cref="IFilter"/> to a filter collection. /// </summary> /// <param name="filters">A collection of <see cref="IFilter"/>.</param> /// <param name="filterType">Type representing an <see cref="IFilter"/>.</param> /// <param name="order">The order of the added filter.</param> /// <returns>An <see cref="IFilter"/> representing the added service type.</returns> /// <remarks> /// Filter instances will created through dependency injection. Use /// <see cref="AddService(ICollection{IFilter}, Type)"/> to register a service that will be created via /// type activation. /// </remarks> public static IFilter AddService( [NotNull] this ICollection<IFilter> filters, [NotNull] Type filterType, int order) { if (!typeof(IFilter).GetTypeInfo().IsAssignableFrom(filterType.GetTypeInfo())) { var message = Resources.FormatTypeMustDeriveFromType(filterType.FullName, typeof(IFilter).FullName); throw new ArgumentException(message, nameof(filterType)); } var filter = new ServiceFilterAttribute(filterType) { Order = order }; filters.Add(filter); return filter; }