Comment : obtenir des données pour un nœud SharePoint intégré dans l'Explorateur de serveursHow to: Get Data for a Built-In SharePoint Node in Server Explorer

Pour chaque nœud SharePoint intégré dans l’Explorateur de serveurs, vous pouvez obtenir des données pour le composant SharePoint sous-jacent que le nœud représente.For each built-in SharePoint node in Server Explorer, you can get data for the underlying SharePoint component that the node represents. Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.For more information, see Extending the SharePoint Connections Node in Server Explorer.

ExempleExample

L’exemple de code suivant montre comment obtenir des données pour la liste SharePoint sous-jacente qui représente un nœud de liste l’Explorateur de serveurs.The following code example demonstrates how to get data for the underlying SharePoint list that a list node represents in Server Explorer. Par défaut, les nœuds de liste ont un afficher dans le navigateur élément de menu contextuel que vous pouvez cliquer pour ouvrir les listes dans un navigateur Web.By default, list nodes have a View in Browser context menu item that you can click to open the lists in a Web browser. Cet exemple étend les nœuds de la liste en ajoutant un affichage dans Visual Studio élément de menu contextuel qui s’ouvre les listes directement dans Visual Studio.This example extends list nodes by adding a View in Visual Studio context menu item that opens the lists directly in Visual Studio. Le code accède à des données de liste pour le nœud obtenir l’URL de la liste pour l’ouvrir dans Visual Studio.The code accesses the list data for the node to get the URL of the list to open in Visual Studio.

Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Imports Microsoft.VisualStudio.SharePoint.Explorer
Imports Microsoft.VisualStudio.SharePoint.Explorer.Extensions

Namespace Contoso.ServerExplorerExtension
    <Export(GetType(IExplorerNodeTypeExtension))> _
    <ExplorerNodeType(ExtensionNodeTypes.ListNode)> _
    Friend Class ListNodeExtension
        Implements IExplorerNodeTypeExtension

        Private projectService As ISharePointProjectService
        Private dteObject As EnvDTE.DTE

        Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _
            Implements IExplorerNodeTypeExtension.Initialize
            AddHandler nodeType.NodeMenuItemsRequested, AddressOf NodeMenuItemsRequested
        End Sub

        Private Sub NodeMenuItemsRequested(ByVal Sender As Object, ByVal e As ExplorerNodeMenuItemsRequestedEventArgs)
            Dim menuItem = e.MenuItems.Add("View in Visual Studio")
            AddHandler menuItem.Click, AddressOf MenuItemClick
        End Sub

        Private Sub MenuItemClick(ByVal Sender As Object, ByVal e As MenuItemEventArgs)

            ' Get the data for the list node.
            Dim node As IExplorerNode = CType(e.Owner, IExplorerNode)
            Dim nodeInfo As IListNodeInfo = node.Annotations.GetValue(Of IListNodeInfo)()

            If dteObject Is Nothing Then

                If projectService Is Nothing Then
                    projectService = CType(node.ServiceProvider.GetService(GetType(ISharePointProjectService)), 
                        ISharePointProjectService)
                End If
                dteObject = CType(projectService.ServiceProvider.GetService(GetType(EnvDTE.DTE)), EnvDTE.DTE)
            End If

            dteObject.ItemOperations.Navigate(nodeInfo.DefaultViewUrl.ToString(),
                EnvDTE.vsNavigateOptions.vsNavigateOptionsNewWindow)
        End Sub
    End Class
End Namespace
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;
using Microsoft.VisualStudio.SharePoint.Explorer;
using Microsoft.VisualStudio.SharePoint.Explorer.Extensions;

namespace Contoso.ServerExplorerExtension
{
    [Export(typeof(IExplorerNodeTypeExtension))]
    [ExplorerNodeType(ExtensionNodeTypes.ListNode)]
    internal class ListNodeExtension : IExplorerNodeTypeExtension
    {
        private ISharePointProjectService projectService;
        private EnvDTE.DTE dteObject;

        public void Initialize(IExplorerNodeType nodeType)
        {
            nodeType.NodeMenuItemsRequested += nodeType_NodeMenuItemsRequested;
        }

        void nodeType_NodeMenuItemsRequested(object sender, ExplorerNodeMenuItemsRequestedEventArgs e)
        {
            IMenuItem menuItem = e.MenuItems.Add("View in Visual Studio");
            menuItem.Click += menuItem_Click;
        }

        void menuItem_Click(object sender, MenuItemEventArgs e)
        {
            // Get the data for the list node.
            IExplorerNode node = (IExplorerNode)e.Owner;
            IListNodeInfo nodeInfo = node.Annotations.GetValue<IListNodeInfo>();

            if (dteObject == null)
            {
                if (projectService == null)
                {
                    projectService = (ISharePointProjectService)node.ServiceProvider.GetService(
                        typeof(ISharePointProjectService));
                }

                dteObject = (EnvDTE.DTE)projectService.ServiceProvider.GetService(typeof(EnvDTE.DTE));
            }

            dteObject.ItemOperations.Navigate(nodeInfo.DefaultViewUrl.ToString(), 
                EnvDTE.vsNavigateOptions.vsNavigateOptionsNewWindow);
        }
    }
}

Cet exemple utilise le service de projet SharePoint pour obtenir le DTE répertorie d’objet qui sert à ouvrir dans Visual Studio.This example uses the SharePoint project service to obtain the DTE object that is used to open lists in Visual Studio. Pour plus d’informations sur le service de projet SharePoint, consultez à l’aide du Service de projet SharePoint.For more information about the SharePoint project service, see Using the SharePoint Project Service.

Pour plus d’informations sur les tâches de base pour créer une extension pour un nœud SharePoint, consultez Comment : étendre un nœud SharePoint dans l’Explorateur de serveurs.For more information about the basic tasks to create an extension for a SharePoint node, see How to: Extend a SharePoint Node in Server Explorer.

Compilation du codeCompiling the Code

Cet exemple nécessite des références aux assemblys suivants :This example requires references to the following assemblies:

  • EnvDTEEnvDTE

  • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

  • Microsoft.VisualStudio.SharePoint.Explorer.ExtensionsMicrosoft.VisualStudio.SharePoint.Explorer.Extensions

  • System.ComponentModel.CompositionSystem.ComponentModel.Composition

Déploiement de l’ExtensionDeploying the Extension

Pour déployer le l’Explorateur de serveurs extension, créez un Visual StudioVisual Studio package d’extension (VSIX) pour l’assembly et tous les autres fichiers que vous souhaitez distribuer avec l’extension.To deploy the Server Explorer extension, create a Visual StudioVisual Studio extension (VSIX) package for the assembly and any other files that you want to distribute with the extension. Pour plus d’informations, consultez déploiement d’Extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Voir aussiSee Also

Extension du nœud Connexions SharePoint dans l’Explorateur de serveurs Extending the SharePoint Connections Node in Server Explorer
Comment : étendre un nœud SharePoint dans l’Explorateur de serveurs How to: Extend a SharePoint Node in Server Explorer
L’utilisation du Service de projet SharePoint Using the SharePoint Project Service
Déploiement d’extensions pour les outils SharePoint dans Visual StudioDeploying Extensions for the SharePoint Tools in Visual Studio