Compartir a través de


Clase SwitchableSiteMapProvider

Proporciona una forma de configuración de exploración de un sitio determinar la instancia de SiteMapProvider que se debe utilizar cuando se procesa una página.

Jerarquía de la herencia

System.Object
  System.Configuration.Provider.ProviderBase
    System.Web.SiteMapProvider
      Microsoft.SharePoint.Publishing.Navigation.SwitchableSiteMapProvider

Espacio de nombres:  Microsoft.SharePoint.Publishing.Navigation
Ensamblado:  Microsoft.SharePoint.Publishing (en Microsoft.SharePoint.Publishing.dll)

Sintaxis

'Declaración
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public NotInheritable Class SwitchableSiteMapProvider _
    Inherits SiteMapProvider _
    Implements IEditableSiteMapProvider
'Uso
Dim instance As SwitchableSiteMapProvider
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public sealed class SwitchableSiteMapProvider : SiteMapProvider, 
    IEditableSiteMapProvider

Comentarios

La clase SwitchableSiteMapProvider permite que la clase SiteMapProvider ser redirigido en tiempo de ejecución según los datos de WebNavigationSettings que se almacenadasen en las propiedades del objeto SPWeb .

El SwitchableSiteMapProvider proporciona una forma de una única página principal admitir varias configuraciones diferentes de navegación posibles. Al diseñar una página principal de un sitio web específico, ya sabrá qué proveedor de navegación se utilizará y puede evitar muchas complejidades especificando directamente en su página principal. Por ejemplo, el control de AspMenu se puede enlazar a un origen de datos como el control PortalSiteMapDataSource , que especifica un nombre como "GlobalNavigation" que hace referencia a una instancia de SiteMapProvider del archivo web.config. Esta cadena se representa en el marcado de la página maestra y sólo incluye dos controles de ASP.NET .

Por el contrario, la página maestra del sistema estándar se basa en dos criterios diferentes de conmutación para admitir tres modelos de navegación diferente. Si la función de exploración de publicación está activa, la página principal contiene un objeto DelegateControl que apunta al proveedor de exploración que se utiliza para sitios básicos de forma predeterminada. Si la característica está habilitada, este objeto DelegateControl reemplaza su origen de datos con el control de PortalSiteMapDataSource que se define mediante la característica de XML en el archivo TEMPLATE\FEATURES\Navigation\NigationSiteSettings.xml .

En versiones anteriores de SharePoint Server, este nuevo origen de datos se enlazaba a GlobalNavigationProvider, que es una instancia del objeto PortalSiteMapProvider . En , se presentó un segundo criterio de conmutación: cada sitio puede elegir entre un TaxonomySiteMapProvider y un PortalSiteMapProvider. Esto se consigue al enlazar el origen de datos al objeto SwitchableSiteMapProvider , que actúa como un contenedor que lee la configuración activa y, a continuación, pasa las llamadas a través del proveedor correspondiente.

Dado que los tipos de proveedor tienen comportamientos muy distintos y escenarios de uso, requieren una configuración diferente para las propiedades como SiteMapDataSource.StartFromCurrentNode y SiteMapDataSource.ShowStartingNode. La etiqueta XML SwitchableProperty proporciona una forma incrustar estos valores de propiedad alternativo dentro del marcado en PortalSiteMapDataSource , mediante el mecanismo deParseChildrenAttribute de ASP.NETel control de PortalSiteMapDataSource . Se utiliza una sintaxis ligeramente diferente para realizar esta operación en la función limitada de lenguaje XML usado el objeto DelegateControl , pero el concepto es el mismo.

El proveedor activo puede determinarse mediante una llamada al método GetCurrentWrappedProvider() .

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SwitchableSiteMapProvider

Espacio de nombres Microsoft.SharePoint.Publishing.Navigation