Cómo: Obtener datos para un nodo integrado de SharePoint en el Explorador de servidores
Desde cada uno de los nodos de SharePoint integrados en el Explorador de servidores, puede obtener los datos del componente de SharePoint subyacente que cada nodo representa.Para obtener más información, vea Extender el nodo Conexiones de SharePoint en el Explorador de servidores.
Ejemplo
En el ejemplo de código siguiente se muestra cómo se obtienen datos de la lista de SharePoint subyacente representada por un nodo de lista en el Explorador de servidores.De forma predeterminada, los nodos de lista tienen un elemento de menú contextual Ver en el explorador en el que se puede hacer clic para abrir las listas en un explorador web.En este ejemplo, los nodos de lista se extienden agregando un elemento de menú contextual Ver en Visual Studio que abre las listas directamente en Visual Studio.El código tiene acceso a los datos de la lista para que el nodo pueda ver la dirección URL de la lista y se abra en 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);
}
}
}
En este ejemplo se usa el servicio de proyecto de SharePoint para obtener el objeto DTE que se usa para abrir listas en Visual Studio.Para obtener más información sobre el servicio de proyecto de SharePoint, vea Utilizar el servicio de proyecto de SharePoint.
Para obtener más información sobre las tareas básicas implicadas en la creación de una extensión de un nodo de SharePoint, vea Cómo: Extender un nodo de SharePoint en el Explorador de servidores.
Compilar el código
Para este ejemplo se requieren referencias a los siguientes ensamblados:
EnvDTE
Microsoft.VisualStudio.SharePoint
Microsoft.VisualStudio.SharePoint.Explorer.Extensions
System.ComponentModel.Composition
Implementar la extensión
Para implementar la extensión del Explorador de servidores, cree un paquete de extensión (VSIX) de Visual Studio para el ensamblado y el resto de archivos que desee distribuir con la extensión.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.
Vea también
Conceptos
Cómo: Extender un nodo de SharePoint en el Explorador de servidores
Utilizar el servicio de proyecto de SharePoint
Extensiones de implementación para las Herramientas de SharePoint en Visual Studio
Otros recursos
Extender el nodo Conexiones de SharePoint en el Explorador de servidores