Exemplo n.º 1
0
        public IContainer ConfigureDIAutofac()
        {
            var containerBuilder = new ContainerBuilder();
            var path             = AppDomain.CurrentDomain.BaseDirectory;
            var assemblies       = Directory.GetFiles(path, "DReporting.*.dll").Select(Assembly.LoadFrom).ToArray();

            containerBuilder.RegisterModule(new AutofacModule());
            containerBuilder.RegisterAssemblyModules(assemblies);

            var autofacSettings = new AutoFacSettings(containerBuilder);
            var resolver        = new AutofacDependencyResolver(autofacSettings);

            resolver.Initialize();

            var baasicDIModules = assemblies.SelectMany(x => x.GetTypes())
                                  .Where(x => typeof(IDIModule).IsAssignableFrom(x) &&
                                         !x.IsInterface &&
                                         !x.IsAbstract &&
                                         x.GetConstructor(Type.EmptyTypes) != null)
                                  .Select(x => Activator.CreateInstance(x) as IDIModule)
                                  .ToArray();

            foreach (var instance in baasicDIModules)
            {
                instance.Load(resolver);
            }
            autofacSettings.Build();

            return(autofacSettings.Container);
        }
Exemplo n.º 2
0
 public AutofacDependencyResolverFixture()
 {
     Settings = new AutoFacSettings();
     Target   = new AutofacDependencyResolver(Settings);
 }