Comment : obtenir des données pour un nœud SharePoint intégré dans l'Explorateur de serveurs
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.Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.
Exemple
L'exemple de code suivant montre comment obtenir des données pour la liste SharePoint sous-jacente qu'un nœud de liste représente dans l'Explorateur de serveurs.Par défaut, les nœuds de liste ont un élément de menu contextuel Afficher dans le navigateur sur lequel vous pouvez cliquer pour ouvrir les listes dans un navigateur Web.Cet exemple étend les nœuds de liste en ajoutant un élément de menu contextuel Afficher dans Visual Studio, qui ouvre directement les listes dans Visual Studio.Le code accède aux données de liste pour le nœud afin d'obtenir l'URL de la liste à ouvrir dans 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 l'objet DTE utilisé afin d'ouvrir les listes dans Visual Studio.Pour plus d'informations au sujet du service de projet SharePoint, consultez Utilisation du service de projet SharePoint.
Pour plus d'informations sur les tâches de base permettant de créer une extension pour un nœud SharePoint, consultez Comment : étendre un nœud SharePoint dans l'Explorateur de serveurs.
Compilation du code
Cet exemple nécessite des références aux assemblys suivants :
EnvDTE
Microsoft.VisualStudio.SharePoint
Microsoft.VisualStudio.SharePoint.Explorer.Extensions
System.ComponentModel.Composition
Déploiement de l'extension
Pour déployer l'extension Explorateur de serveurs, créez un package d'extension Visual Studio (VSIX) pour l'assembly et tous les autres fichiers que vous voulez distribuer avec l'extension.Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.
Voir aussi
Concepts
Comment : étendre un nœud SharePoint dans l'Explorateur de serveurs
Utilisation du service de projet SharePoint
Déploiement d'extensions pour les outils SharePoint dans Visual Studio
Autres ressources
Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs