private IDynamicNodeProvider[] ResolveDynamicNodeProviders() { var instantiator = new PluginInstantiator<IDynamicNodeProvider>(); var xmlSource = new FileXmlSource(this.absoluteFileName); var typeNames = xmlAggergator.GetAttributeValues(xmlSource, "dynamicNodeProvider"); var providers = instantiator.GetInstances(typeNames); return providers.ToArray(); }
private IList<string> GetMvcSiteMapNodeXmlDistinctAttributeValues(string attributeName) { IList<string> result = new List<string>(); if (this.settings.EnableSiteMapFile) { var xmlSource = new FileXmlSource(this.absoluteFileName); result = xmlAggergator.GetAttributeValues(xmlSource, attributeName); } return result; }
private ISiteMapNodeUrlResolver[] ResolveSiteMapNodeUrlResolvers() { var instantiator = new PluginInstantiator<ISiteMapNodeUrlResolver>(); var xmlSource = new FileXmlSource(this.absoluteFileName); var typeNames = xmlAggergator.GetAttributeValues(xmlSource, "urlResolver"); // Add the default provider if it is missing var defaultName = typeof(SiteMapNodeUrlResolver).ShortAssemblyQualifiedName(); if (!typeNames.Contains(defaultName)) { typeNames.Add(defaultName); } var providers = instantiator.GetInstances(typeNames, new object[] { this.mvcContextFactory }); return providers.ToArray(); }
private ISiteMapNodeVisibilityProvider[] ResolveSiteMapNodeVisibilityProviders(string defaultVisibilityProviderName) { var instantiator = new PluginInstantiator<ISiteMapNodeVisibilityProvider>(); var xmlSource = new FileXmlSource(this.absoluteFileName); var typeNames = xmlAggergator.GetAttributeValues(xmlSource, "visibilityProvider"); // Fixes #196, default instance not created. if (!String.IsNullOrEmpty(defaultVisibilityProviderName) && !typeNames.Contains(defaultVisibilityProviderName)) { typeNames.Add(defaultVisibilityProviderName); } var providers = instantiator.GetInstances(typeNames); return providers.ToArray(); }
private IDynamicNodeProvider[] ResolveDynamicNodeProviders() { var instantiator = new PluginInstantiator<IDynamicNodeProvider>(); var xmlSource = new FileXmlSource(this.absoluteFileName); var typeNames = xmlAggergator.GetAttributeValues(xmlSource, "dynamicNodeProvider"); var attributeTypeNames = this.GetMvcSiteMapNodeAttributeDynamicNodeProviderNames(); foreach (var typeName in attributeTypeNames) { if (!typeNames.Contains(typeName)) { typeNames.Add(typeName); } } var providers = instantiator.GetInstances(typeNames); return providers.ToArray(); }