Share via


SwitchableSiteMapProvider - Classe

Fournit un moyen pour les paramètres de navigation d'un site déterminer l'instance de SiteMapProvider qui doit être utilisé lors du rendu d'une page.

Hiérarchie d’héritage

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

Espace de noms :  Microsoft.SharePoint.Publishing.Navigation
Assembly :  Microsoft.SharePoint.Publishing (dans Microsoft.SharePoint.Publishing.dll)

Syntaxe

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

Remarques

La classe SwitchableSiteMapProvider permet à la classe SiteMapProvider être redirigé au moment de l'exécution en fonction des données qui sont stockées dans les propriétés de l'objet SPWebWebNavigationSettings .

La SwitchableSiteMapProvider permet à une page maître unique prendre en charge plusieurs configurations différentes de navigation possible. Lorsque vous créez une page maître pour un site web spécifique, vous le savez peut-être le fournisseur de navigation sera utilisé, et vous pouvez éviter une grande complexité en spécifiant directement dans votre page maître. Par exemple, votre contrôle AspMenu pouvez lier à une source de données comme le contrôle PortalSiteMapDataSource , qui spécifie un nom tel que « GlobalNavigation » qui fait référence à une instance de SiteMapProvider à partir du fichier web.config. Cette chaîne est représentée dans le balisage de la page maître et implique seulement les deux contrôles de ASP.NET .

En revanche, la page maître système standard s'appuie sur deux critères de commutation différents pour prendre en charge trois modèles de navigation différentes. Si la fonctionnalité de navigation de publication est active, la page maître contient un objet DelegateControl qui pointe vers le fournisseur de navigation qui est utilisé pour les sites de base par défaut. Si la fonctionnalité est activée, cet objet DelegateControl remplace sa source de données avec le contrôle PortalSiteMapDataSource qui est défini par la fonction de XML dans le fichier TEMPLATE\FEATURES\Navigation\NigationSiteSettings.xml .

Dans les versions précédentes de SharePoint Server, cette nouvelle source de données a été liée à la GlobalNavigationProvider, qui est une instance de l'objet PortalSiteMapProvider . Dans , un deuxième critère de commutation a été introduite : chaque site peut choisir entre un TaxonomySiteMapProvider et un PortalSiteMapProvider. Pour cela, vous devez lier la source de données à l'objet SwitchableSiteMapProvider , qui sert de wrapper qui lit les paramètres actifs et transmet ensuite les appels via le fournisseur approprié.

Étant donné que les types de fournisseurs ont des comportements très différents et des scénarios d'utilisation, ils nécessitent des paramètres différents pour les propriétés telles que SiteMapDataSource.StartFromCurrentNode et SiteMapDataSource.ShowStartingNode. La balise XML SwitchableProperty fournit un moyen pour le contrôle PortalSiteMapDataSource incorporer ces valeurs de propriété de substitution dans le balisage de la PortalSiteMapDataSource , au moyen du mécanisme deParseChildrenAttributeASP.NET. Une syntaxe légèrement différente est utilisée pour effectuer cette opération dans la langage XML utilisé par l'objet DelegateControl de fonctionnalités limité, mais le concept est le même.

Le fournisseur actif peut être déterminé en appelant la méthode GetCurrentWrappedProvider() .

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

SwitchableSiteMapProvider - Membres

Microsoft.SharePoint.Publishing.Navigation - Espace de noms