Beispiel #1
0
        public static void Load(ContainerBuilder builder, ChiffonConfig config)
        {
            Require.NotNull(builder, "builder");
            Require.NotNull(config, "config");

            builder.Register(_ => config).AsSelf().SingleInstance();

            builder.RegisterType <MailMerge>().As <IMailMerge>().InstancePerRequest();
            builder.RegisterType <Messenger>().As <IMessenger>().InstancePerRequest();

            // IMPORTANT: ChiffonEnvironment est entièrement résolue à l'exécution.
            // Cf. aussi les commentaires dans la classe ChiffonContext.
            builder.Register(_ => ChiffonContext.Resolve(HttpContext.Current).Environment).AsSelf().InstancePerRequest();

            builder.RegisterType <SiteMapFactory>().As <ISiteMapFactory>().SingleInstance();
            // FIXME: Pour les HttpHandlers, je n'arrive pas à voir pour le moment pourquoi
            // on ne récupère pas la bonne valeur de ChiffonEnvironment et donc de SiteMap, même
            // en précisant IsReusable = false. Peut-être faut-il utiliser InstancePerHttpRequest()
            // au niveau de RegisterHandlers() dans AspNetMvcModule ?
            // IMPORTANT: ISiteMap est entièrement résolue à l'exécution.
            builder.Register(ResolveSiteMap_).As <ISiteMap>().InstancePerRequest();

            RegisterPersistenceTypes_(builder, config.EnableServerCache);
            RegisterServiceTypes_(builder);
            RegisterAspNetMvcTypes_(builder);
        }
        public PatternImageHandler(ChiffonConfig config, IDbQueries queries)
            : base()
        {
            Require.NotNull(config, "config");
            Require.NotNull(queries, "queries");

            _config  = config;
            _queries = queries;
        }
        public static void Start()
        {
            // Chargement de la configuration.
            var config = ChiffonConfig.FromConfiguration();

            // Configuration de l'injection de dépendances.
            var builder = new ContainerBuilder();

            Dependencies.Load(builder, config);
            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            // Configuration de Serilog.
            Log.Logger = Dependencies.GetLogger(config);
        }
Beispiel #4
0
        public static ILogger GetLogger(ChiffonConfig config)
        {
            Require.NotNull(config, "config");

            ILoggerProvider provider;

            using (var catalog = new AssemblyCatalog(typeof(ApplicationLifecycle).Assembly))
            {
                using (var container = new CompositionContainer(catalog))
                {
                    provider = container.GetExportedValue <ILoggerProvider>(config.LogProfile);
                }
            }

            return(provider.GetLogger(config.LogMinimumLevel));
        }
Beispiel #5
0
        public ComponentController(ChiffonConfig config)
        {
            Require.NotNull(config, "config");

            _config = config;
        }
        public WidgetController(ChiffonConfig config)
        {
            Require.NotNull(config, "config");

            _config = config;
        }