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;
        }
Exemple #3
0
        /// <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;
 }