Sdílet prostřednictvím


Postupy: Získání dat pro předdefinovaný uzel služby SharePoint v průzkumníku serveru

Pro každý vestavěný uzel služby SharePoint v Průzkumníku serveru můžete získat data pro základní součást SharePoint, která představuje uzel.Další informace naleznete v tématu Rozšíření uzlu připojení služby SharePoint v průzkumníku serveru.

Příklad

Následující příklad kódu ukazuje, jak lze získat data pro základní seznam služby SharePoint, představující seznam uzlů v Průzkumníku serveru.Seznam uzlů má ve výchozím nastavení položku kontextové nabídky Zobrazit prohlížeč, kterou lze otevřít ve webovém prohlížeči kliknutím.V tomto příkladu rozšiřuje seznam uzlů přidáním položky kontextové nabídky Zobrazení v aplikaci Visual Studio, která otevře seznam přímo v aplikaci Visual Studio.Kód přistupuje k datům seznamu pro uzel k získání adresy URL seznamu otevřeného v aplikaci 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);
        }
    }
}

V tomto příkladu je použita služba projektu SharePoint pro získání objektu DTE, který se používá k otevření seznamů v aplikaci Visual Studio.Další informace o službě projektu SharePoint naleznete v tématu Použití služby projektu služby SharePoint.

Další informace o základních úlohách vytváření rozšíření pro uzel SharePoint naleznete v Postupy: Rozšíření uzlu služby SharePoint v průzkumníku serveru.

Probíhá kompilace kódu

Tento příklad vyžaduje odkazy na následující sestavení:

  • EnvDTE

  • Microsoft.VisualStudio.SharePoint

  • Microsoft.VisualStudio.SharePoint.Explorer.Extensions

  • System.ComponentModel.Composition

Nasazování rozšíření

Chcete-li nasadit rozšíření Průzkumníka serveru vytvořte Visual Studio balíček rozšíření (VSIX) pro sestavení a všechny další soubory, které chcete distribuovat s rozšířením.Další informace naleznete v tématu Nasazování rozšíření pro nástroje služby SharePoint v aplikaci Visual Studio.

Viz také

Koncepty

Postupy: Rozšíření uzlu služby SharePoint v průzkumníku serveru

Použití služby projektu služby SharePoint

Nasazování rozšíření pro nástroje služby SharePoint v aplikaci Visual Studio

Další zdroje

Rozšíření uzlu připojení služby SharePoint v průzkumníku serveru