コード例 #1
0
        private static void UseControllerlessApiDocumentation(HttpConfiguration config)
        {
            var queryApiExplorer = new ControllerlessApiExplorer(
                messageTypes: Bootstrapper.GetKnownQueryTypes().Select(t => t.QueryType),
                responseTypeSelector: type => BusinessLayerBootstrapper.GetQueryResultType(type))
            {
                ControllerName          = "queries",
                ParameterSourceSelector = type => ApiParameterSource.FromUri,
                HttpMethodSelector      = type => HttpMethod.Get,
                ActionNameSelector      = type => type.ToFriendlyName()
            };

            var commandApiExplorer = new ControllerlessApiExplorer(
                messageTypes: Bootstrapper.GetKnownCommandTypes(),
                responseTypeSelector: type => typeof(void))
            {
                ControllerName     = "commands",
                ParameterName      = "command",
                ActionNameSelector = type => type.ToFriendlyName(),
            };

            config.Services.Replace(typeof(IApiExplorer),
                                    new CompositeApiExplorer(
                                        config.Services.GetApiExplorer(),
                                        commandApiExplorer,
                                        queryApiExplorer));
        }
コード例 #2
0
        public static IEnumerable <Type> GetQueryAndResultTypes()
        {
            var queryTypes  = BusinessLayerBootstrapper.GetQueryTypes().Select(q => q.QueryType);
            var resultTypes = BusinessLayerBootstrapper.GetQueryTypes().Select(q => q.ResultType).Distinct();

            return(queryTypes.Concat(resultTypes));
        }
コード例 #3
0
        public static Container Bootstrap(Container container)
        {
            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterSingleton <IPrincipal, HttpContextPrincipal>();
            container.RegisterInstance <ILogger>(new DebugLogger());

            return(container);
        }
コード例 #4
0
    protected override Application_Start()
    {
        var container = new Container();

        container.RegisterMvcControllers();
        BusinessLayerBootstrapper.Bootstrap(container, new WebRequestLifestyle());
        DependencyResolver.SetResolver(
            new SimpleInjectorDependencyResolver(container));
    }
コード例 #5
0
        public static Container Bootstrap(Container container, IApplicationBuilder app)
        {
            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterSingleton <IPrincipal, HttpContextPrincipal>();
            container.RegisterInstance <ILogger>(new DebugLogger());

            container.Verify();

            return(container);
        }
コード例 #6
0
        public static Container Bootstrap()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterInstance <IPrincipal>(new HttpContextPrincipal());
            container.RegisterInstance <ILogger>(new DebugLogger());

            return(container);
        }
コード例 #7
0
        public static void Bootstrap()
        {
            // Did you know the container can diagnose your configuration? Go to: http://bit.ly/YE8OJj.
            container = new Container();

            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterDecorator(typeof(ICommandHandler <>), typeof(ToWcfFaultTranslatorCommandHandlerDecorator <>));

            container.RegisterWcfServices(Assembly.GetExecutingAssembly());

            RegisterWcfSpecificDependencies();

            container.Verify();
        }
コード例 #8
0
        public static void Bootstrap()
        {
            container = new Container();

            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterDecorator(typeof(ICommandHandler <>),
                                        typeof(ToWcfFaultTranslatorCommandHandlerDecorator <>));

            container.RegisterWcfServices(Assembly.GetExecutingAssembly());

            RegisterWcfSpecificDependencies();

            container.Verify();
        }
コード例 #9
0
        public static Container Bootstrap()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();

            BusinessLayerBootstrapper.Bootstrap(container);

            container.RegisterSingleton <IPrincipal>(new HttpContextPrincipal());
            container.RegisterSingleton <ILogger>(new DebugLogger());

            container.Verify();

            return(container);
        }
コード例 #10
0
        public static void Bootstrap()
        {
            // Did you know the container can diagnose your configuration? Go to: https://bit.ly/YE8OJj.
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            BusinessLayerBootstrapper.Bootstrap(container);

            RegisterWebApiSpecificDependencies(container);

            container.RegisterMvcControllers(Assembly.GetExecutingAssembly());

            container.RegisterMvcIntegratedFilterProvider();

            container.Verify();

            GlobalConfiguration.Configuration.DependencyResolver =
                new SimpleInjectorWebApiDependencyResolver(container);

            System.Web.Mvc.DependencyResolver.SetResolver(
                new SimpleInjector.Integration.Web.Mvc.SimpleInjectorDependencyResolver(container));
        }
コード例 #11
0
 public static IEnumerable <QueryInfo> GetKnownQueryTypes() => BusinessLayerBootstrapper.GetQueryTypes();
コード例 #12
0
 public static IEnumerable <Type> GetKnownCommandTypes() => BusinessLayerBootstrapper.GetCommandTypes();
コード例 #13
0
 public static object GetQueryHandler(Type queryType) =>
 container.GetInstance(BusinessLayerBootstrapper.CreateQueryHandlerType(queryType));