コード例 #1
0
        public WorkerRegistry()
        {
            var settings = MomntzConfiguration.GetSettings();

            SetLogging(settings);

            For <ISessionFactory>().Use(new Database().CreateSessionFactory());
            For <IProjectionProcessor>().Use <ProjectionProcessor>();
            For <ICommandProcessor>().Use <CommandProcessor>();
            For <ApplicationSettings>().Use(settings);

            For <ISession>().HybridHttpOrThreadLocalScoped().Use(() => new Database().CreateSessionFactory().OpenSession());
            For <IStorage>().Use <AzureStorage>()
            .Ctor <string>("cloudUrl")
            .Is(settings.CloudUrl)
            .Ctor <string>("cloudAccount")
            .Is(settings.CloudAccount)
            .Ctor <string>("cloudKey")
            .Is(settings.CloudKey);

            For <IQueue>().Use <AzureQueue>()
            .Ctor <string>("connectionString")
            .Is(settings.ServiceBusEndpoint);

            For <ILog>().Use <Log>();

            For <IConfigurationService>().Use <MomntzConfiguration>();
            For <ISettings>().Use <Settings>();
        }
コード例 #2
0
        /// <summary> Registers the dependency injection. </summary>
        private void RegisterDependencyInjection()
        {
            var settings = MomntzConfiguration.GetSettings();

            SetLogging(settings);

            ObjectFactory.Initialize(x => x.Scan(s =>
            {
                x.AddRegistry <MomntzRegistry>();

                x.For <IDatabase>().Use(new MsSqlDatabase());
                x.For <ApplicationSettings>().Use(settings);

                x.For <ICrypto>().Use <Crypto>();
                x.For <ILog>().Use <Log>();
                x.For <IConfigurationService>().Use <MomntzConfiguration>();
                x.For <ISessionFactory>().Singleton().Use(Database.CreateSessionFactory);
                x.For <NHibernate.ISession>().HttpContextScoped().Use(r => r.GetInstance <ISessionFactory>().OpenSession());
                x.For <IStorage>().Use <AzureStorage>()
                .Ctor <string>("cloudUrl")
                .Is(settings.CloudUrl)
                .Ctor <string>("cloudAccount")
                .Is(settings.CloudAccount)
                .Ctor <string>("cloudKey")
                .Is(settings.CloudKey);

                x.For <IQueue>().Use <AzureQueue>()
                .Ctor <string>("connectionString")
                .Is(settings.ServiceBusEndpoint);

                s.TheCallingAssembly();
                s.WithDefaultConventions();

                s.ConnectImplementationsToTypesClosing(typeof(IFormHandler <>));
                s.ConnectImplementationsToTypesClosing(typeof(IQueryHandler <,>));

                x.For <IInjection>().Use(new StructureMapInjection());
            }));

            ModelBinders.Binders.Add(typeof(NewTag), new NewTagModelBinder());
            ModelBinders.Binders.Add(typeof(UsernameAndPassword), new UsernameAndPasswordModelBinder());

            ObjectFactory.AssertConfigurationIsValid();
            DependencyResolver.SetResolver(new StructureMapDependencyResolver());

            ConfigureAutoMapper();
        }