Example #1
0
        public virtual void Configure(ITelehireEngine engine, ContainerManager containerManager)
        {
            containerManager.AddComponentInstance<ITelehireEngine>(engine, "Appform.engine");
            containerManager.AddComponentInstance<ContainerConfigurer>(this, "Appform.containerConfigurer");

            //type finder
            containerManager.AddComponent<ITypeLocator, WebAppTypeLocator>("Forms.typeFinder");

            //register dependencies provided by other assemblies
            var typeFinder = containerManager.Resolve<ITypeLocator>();
            containerManager.UpdateContainer(x =>
            {
                var drTypes = typeFinder.FindClassesOfType<IDependencyRegistrar>();
                var drInstances = new List<IDependencyRegistrar>();
                foreach (var drType in drTypes)
                    drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType));

                foreach (var dependencyRegistrar in drInstances)
                    dependencyRegistrar.Register(x, typeFinder);
            });
        }
Example #2
0
 public static void Replace(ITelehireEngine engine)
 {
     SingletonActivator<ITelehireEngine>.Instance = engine;
 }