Exemple #1
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out type that doesn't have <paramref name="attributeType" />.
 /// </summary>
 /// <typeparam name="TContext">Type of context.</typeparam>
 /// <param name="enumerator">Type enumerator.</param>
 /// <param name="attributeType">Required attribute type.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection <TContext> AddFilterHasAttribute <TContext>(this ITypeDelegateCollection <TContext> enumerator, Type attributeType)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter((t, context) => t.GetCustomAttributes(attributeType, true).Length > 0));
 }
Exemple #2
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out abstract classes.
 /// </summary>
 /// <typeparam name="TContext">Type of context.</typeparam>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection <TContext> AddFilterNotAbstract <TContext>(this ITypeDelegateCollection <TContext> enumerator)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter((t, context) => !t.IsAbstract));
 }
Exemple #3
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out type that doesn't have <typeparamref name="TAttribute"/>.
 /// </summary>
 /// <typeparam name="TAttribute">Required attribute type.</typeparam>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection AddFilterHasAttribute <TAttribute>(this ITypeDelegateCollection enumerator)
 {
     return(AddFilterHasAttribute(enumerator, typeof(TAttribute)));
 }
Exemple #4
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out abstract classes.
 /// </summary>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection AddFilterNotAbstract(this ITypeDelegateCollection enumerator)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter(t => !t.IsAbstract));
 }
Exemple #5
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out interfaces.
 /// </summary>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection AddFilterNotInterface(this ITypeDelegateCollection enumerator)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter(t => !t.IsInterface));
 }
Exemple #6
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out classes without default (parameter-less) constructor.
 /// </summary>
 /// <typeparam name="TContext">Type of context.</typeparam>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection <TContext> AddFilterHasDefaultConstructor <TContext>(this ITypeDelegateCollection <TContext> enumerator)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter((t, context) => t.HasDefaultConstructor()));
 }
Exemple #7
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out classes without default (parameter-less) constructor.
 /// </summary>
 /// <param name="enumerator">Type enumerator.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection AddFilterHasDefaultConstructor(this ITypeDelegateCollection enumerator)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter(t => t.HasDefaultConstructor()));
 }
Exemple #8
0
 /// <summary>
 /// Adds filter on <paramref name="enumerator"/> to filter out classes without constructor with <paramref name="parameterTypes" />.
 /// </summary>
 /// <typeparam name="TContext">Type of context.</typeparam>
 /// <param name="enumerator">Type enumerator.</param>
 /// <param name="parameterTypes">Ordered array of required parameters in constructor.</param>
 /// <returns>Result from calling <see cref="ITypeDelegateCollection.AddFilter"/>.</returns>
 public static ITypeDelegateCollection <TContext> AddFilterHasConstructor <TContext>(this ITypeDelegateCollection <TContext> enumerator, params Type[] parameterTypes)
 {
     Ensure.NotNull(enumerator, "enumerator");
     return(enumerator.AddFilter((t, context) => t.GetConstructor(parameterTypes) != null));
 }