Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="type"></param>
        private void InitializeManager(ManagerDefinition manager)
        {
            foreach (var dependency in manager.Definition.Dependencies)
            {
                var dependencyDefinition = m_definitions.FirstOrDefault(m => m.Definition.Id == dependency);
                if (dependencyDefinition != null)
                {
                    InitializeManager(dependencyDefinition);
                }
            }

            var instance = ReflectHelper.FetchPropertyValue <IManager>
                           (
                manager.Type,
                "Instance",
                System.Reflection.BindingFlags.Static |
                System.Reflection.BindingFlags.Public |
                System.Reflection.BindingFlags.FlattenHierarchy
                           );

            instance.Initialize();

            // Since the manager is loaded we dont need to load it back
            m_definitions.Remove(manager);

            if (m_definitions.Count > 0)
            {
                InitializeManager(m_definitions[0]);
            }
        }