示例#1
0
        protected void Application_Start(object sender, EventArgs e)
        {
            var builder = new ContainerBuilder();

            // Register service implementations.
            builder.RegisterType <BlogService>();

            // Register dependencies.

            // Register ISessionFactory as Singleton
            builder.Register(x => SessionFactoryConfigurator.Build()).SingleInstance();
            builder.Register(x => x.Resolve <ISessionFactory>().OpenSession()).InstancePerLifetimeScope();

            builder.RegisterType <RepositoryResolver>().As <IRepositoryResolver>().SingleInstance();

            builder.RegisterType <PgConnectionFactory>().As <IConnectionFactory>().SingleInstance();
            builder.RegisterType <GlobalErrorHandler>().SingleInstance();
            builder.RegisterType <ObjectMapper>().As <IObjectMapper>().SingleInstance();

            builder.RegisterType <UnitOfWorkFactory>().As <IUnitOfWorkFactory>().SingleInstance();

            builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>));

            builder.RegisterType <Blog>().As <IBlog>().SingleInstance();

            var logger = new LoggerConfiguration()
                         .MinimumLevel.Verbose()
                         .WriteTo.Seq("http://localhost:5341")
                         .CreateLogger();

            builder.Register <ILogger>(c => logger)
            .SingleInstance();

            // Set the dependency resolver.
            var container = builder.Build();

            AutofacHostFactory.Container = container;

            // To log NH to Serilog
            AddTraceListener(logger);
        }
示例#2
0
 static RepositoryTest()
 {
     sessionFactory = SessionFactoryConfigurator.Build();
 }