/// <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]); } }
public static IReadOnlyDictionary <string, ManagerDefinition> GetManagers([NotNull] XmlDocument configuration) { Assert.ArgumentNotNull(configuration, nameof(configuration)); return(configuration .SelectElements("/configuration/sitecore/*/providers") .Select(p => (XmlElement)p.ParentNode) .Select(m => ManagerDefinition.Parse(m)) .ToDictionary(m => m.Name, x => x)); }
public static ManagerDefinition GetManager([NotNull] XmlDocument configuration, [NotNull] string name) { Assert.ArgumentNotNull(configuration, nameof(configuration)); Assert.ArgumentNotNull(name, nameof(name)); var manager = configuration.SelectSingleNode("/configuration/sitecore/" + name) as XmlElement; if (manager != null) { return(ManagerDefinition.Parse(manager)); } return(null); }