private IMiddlewarePlugin CreateMiddlewareInstance(string filterType) { var type = TypeHelper<Type>.GetTypeByFullName(filterType); var typeFilterAttribute = new TypeFilterAttribute(type) { Order = 0 }; var filterDescriptor = new FilterDescriptor(typeFilterAttribute, 0); var instance = _serviceProvider.GetService(type); var iMiddlewarePlugin = (IMiddlewarePlugin)instance; return iMiddlewarePlugin; }
/// <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 type.</returns> /// <remarks> /// Filter instances will be created using /// <see cref="Microsoft.Framework.DependencyInjection.ActivatorUtilities"/>. /// Use <see cref="AddService(ICollection{IFilter}, Type)"/> to register a service as a filter. /// </remarks> public static IFilter Add( [NotNull] this ICollection<IFilter> filters, [NotNull] Type filterType, int order) { if (!typeof(IFilter).IsAssignableFrom(filterType)) { var message = Resources.FormatTypeMustDeriveFromType(filterType.FullName, typeof(IFilter).FullName); throw new ArgumentException(message, nameof(filterType)); } var filter = new TypeFilterAttribute(filterType) { Order = order }; filters.Add(filter); return filter; }
/// <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 type.</returns> /// <remarks> /// Filter instances will be created using /// <see cref="Microsoft.Framework.DependencyInjection.ActivatorUtilities"/>. /// Use <see cref="AddService(ICollection{IFilterMetadata}, Type)"/> to register a service as a filter. /// </remarks> public static IFilterMetadata Add( [NotNull] this ICollection <IFilterMetadata> filters, [NotNull] Type filterType, int order) { if (!typeof(IFilterMetadata).IsAssignableFrom(filterType)) { var message = Resources.FormatTypeMustDeriveFromType(filterType.FullName, typeof(IFilterMetadata).FullName); throw new ArgumentException(message, nameof(filterType)); } var filter = new TypeFilterAttribute(filterType) { Order = order }; filters.Add(filter); return(filter); }
private static FilterItem CreateFilterItem(string filterType) { var authFilter = TypeHelper<Type>.GetTypeByFullName(filterType); var typeFilterAttribute = new TypeFilterAttribute(authFilter) {Order = -1}; var filterDescriptor = new FilterDescriptor(typeFilterAttribute, -1); var filterMetaData = (IFilterMetadata) Activator.CreateInstance(authFilter); var fi = new FilterItem(filterDescriptor, filterMetaData); return fi; }
private FilterItem CreateFilterItem(string filterType) { var type = TypeHelper<Type>.GetTypeByFullName(filterType); var typeFilterAttribute = new TypeFilterAttribute(type) {Order = 0}; var filterDescriptor = new FilterDescriptor(typeFilterAttribute, 0); var filterInstance = _serviceProvider.GetService(type); var filterMetaData = (IFilterMetadata) filterInstance; var fi = new FilterItem(filterDescriptor, filterMetaData); return fi; }