示例#1
0
        private IDependencyFactory InitChainOfSubctractFactories(ISharedFactory sharedFactory)
        {
            ContainerDependencyOptions dependencies = _config.ContainerOptions.Dependencies;

            System.Collections.Generic.Stack <ContainerDependencyOptions> stack = new System.Collections.Generic.Stack <ContainerDependencyOptions>();

            while (dependencies != null)
            {
                stack.Push(dependencies);
                dependencies = dependencies.DependencyOptions;
            }

            IDependencyFactory lastDependencyFactory = null;

            foreach (var item in stack)
            {
                Assembly[] subcontractAssmblies = GetAssemblies(item.Assemblies);
                lastDependencyFactory = new DefaultSubcontractFactory(item.Name, item.Namespaces, subcontractAssmblies, _config.ContainerOptions.StrictMode, lastDependencyFactory, sharedFactory);
            }
            return(lastDependencyFactory);
        }
示例#2
0
 /// <summary>
 /// Adds dependency assemblies. Specify the namespaces for dependencies to be searched,
 /// if don't want to add all available services.
 /// </summary>
 /// <param name="options"></param>
 public void AddDependencies(Action <ContainerDependencyOptions> options)
 {
     _dependencies = new ContainerDependencyOptions();
     options(_dependencies);
 }