/// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <param name="configAction"></param>
        /// <returns></returns>
        public static IConventionalRegistrationContext Action(this IConventionalRegistrationContext context, Action <IConventionalConfiguration> configAction)
        {
            var config = new ConventionalConfiguration(context.Services);

            configAction(config);
            return(context);
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="services"></param>
        /// <param name="types"></param>
        /// <param name="configureAction"></param>
        /// <returns></returns>
        public static IServiceCollection DoConventionalAction <TAction>(this IServiceCollection services, IEnumerable <Type> types, Action <IConventionalConfiguration> configureAction) where TAction : ConventionalActionBase
        {
            var config = new ConventionalConfiguration(services, types);

            configureAction(config);
            var action = Activator.CreateInstance(typeof(TAction), config) as TAction;

            action.Action();
            return(services);
        }
Пример #3
0
        public static IServiceCollection DoConventionalAction <TAction>(
            this IServiceCollection services,
            IEnumerable <Type> types,
            Action <IConventionalConfiguration <TAction> > configureAction)
            where TAction : ConventionalActionBase
        {
            var config = new ConventionalConfiguration <TAction>(services, types);

            configureAction(config);
            var action = Activator.CreateInstance(
                typeof(TAction),
                BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.NonPublic,
                null,
                new object[] { config },
                null) as TAction;

            action.Action();
            return(services);
        }