Udostępnij za pośrednictwem


Jak: dodać niestandardowe węzeł SharePoint Server Explorer

Można dodać niestandardowe węzły pod Połączeń SharePoint węzeł w Server Explorer.Jest to przydatne, gdy chcesz wyświetlić dodatkowe składniki programu SharePoint, które nie są wyświetlane w Server Explorer domyślnie.Aby uzyskać więcej informacji, zobacz Rozszerzanie węzła połączenia programu SharePoint w programie Server Explorer.

Aby dodać węzeł niestandardowe, należy najpierw utworzyć klasa, która definiuje nowy węzeł.Następnie utwórz rozszerzenie dodaje węzeł jako element podrzędny węzeł istniejących.

Aby zdefiniować nowy węzeł.

  1. Utwórz projekt biblioteki klas.

  2. Dodaj odwołania do następujących zestawów:

    • Microsoft.VisualStudio.SharePoint

    • Microsoft.VisualStudio.SharePoint.Explorer.Extensions

    • System.ComponentModel.Composition

    • System.Drawing

  3. Tworzenie klasy implementującej IExplorerNodeTypeProvider interfejsu.

  4. Do tej klasy należy dodać następujące atrybuty:

  5. W implementacji IExplorerNodeTypeProvider.InitializeType metodę, użyj członków typeDefinition parametr, aby skonfigurować zachowanie nowy węzeł.Ten parametr jest IExplorerNodeTypeDefinition obiekt, który zapewnia dostęp do zdarzenia zdefiniowane w IExplorerNodeEvents interfejsu.

    Poniższy przykład kodu pokazuje jak zdefiniować nowy węzeł.W przykładzie założono, że projekt jest wyświetlana ikona, o nazwie CustomChildNodeIcon jako zasobu osadzonego.

    <Export(GetType(IExplorerNodeTypeProvider))> _
    <ExplorerNodeType(ExampleNodeTypeProvider.NodeTypeId)> _
    Friend Class ExampleNodeTypeProvider
        Implements IExplorerNodeTypeProvider
        Friend Const NodeTypeId As String = "Contoso.ServerExplorerNodeExample"
    
        Private Sub InitializeType(ByVal typeDefinition As IExplorerNodeTypeDefinition) _
            Implements IExplorerNodeTypeProvider.InitializeType
            typeDefinition.DefaultIcon = _
                My.Resources.CustomChildNodeIcon.ToBitmap()
            typeDefinition.IsAlwaysLeaf = True
        End Sub
    End Class
    
    [Export(typeof(IExplorerNodeTypeProvider))]
    [ExplorerNodeType(ExampleNodeTypeProvider.NodeTypeId)]
    internal class ExampleNodeTypeProvider : IExplorerNodeTypeProvider
    {
        internal const string NodeTypeId = "Contoso.ServerExplorerNodeExample";
    
        public void InitializeType(IExplorerNodeTypeDefinition typeDefinition)
        {
            typeDefinition.DefaultIcon =
                Properties.Resources.CustomChildNodeIcon.ToBitmap();
            typeDefinition.IsAlwaysLeaf = true;
        }
    }
    

Aby dodać nowy węzeł jako element podrzędny węzeł istniejących

  1. W tym samym projekcie w Państwa definicji węzła, należy utworzyć klasy, która implementuje IExplorerNodeTypeExtension interfejsu.

  2. Dodaj System.ComponentModel.Composition.ExportAttribute atrybutu do klasy.Atrybut ten umożliwia wykrywanie i załadować do programu Visual Studio na IExplorerNodeTypeExtension wdrożenia.Przekazać IExplorerNodeTypeExtension typu Konstruktor atrybutu.

  3. Dodaj ExplorerNodeTypeAttribute atrybutu do klasy.W rozszerzeniu węzła ten atrybut określa identyfikator ciągu dla typu węzeł, który chcesz rozszerzyć.

    Aby określić typy węzłów wbudowane, dostarczonym przez Visual Studio, przekazać jedną z następujących wartości wyliczenia Konstruktor atrybutu:

    • ExplorerNodeTypes: Użyj tych wartości, aby określić węzły połączenia witryny (węzłów, które są wyświetlane adresy URL witryny), witryny, węzły lub innych węzłów nadrzędnych w Server Explorer.

    • ExtensionNodeTypes: Użyj tych wartości, aby określić jeden z wbudowanych węzłów, które reprezentują poszczególnych składników w witrynie programu SharePoint, takich jak węzeł, który reprezentuje listy, pola lub typu zawartości.

  4. W implementacji Initialize metody, uchwyt NodeChildrenRequested zdarzenia IExplorerNodeType parametru.

  5. W NodeChildrenRequested obsługi zdarzeń, dodawanie nowego węzła do kolekcji węzły podrzędne Node obiektu, ujawnianą przez parametr argumenty zdarzeń.

    Poniższy przykład kodu demonstruje, jak dodać nowy węzeł jako element podrzędny węzeł witryny programu SharePoint w Server Explorer.

    <Export(GetType(IExplorerNodeTypeExtension))> _
    <ExplorerNodeType(ExplorerNodeTypes.SiteNode)> _
    Friend Class SiteNodeExtension
        Implements IExplorerNodeTypeExtension
    
        Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _
            Implements IExplorerNodeTypeExtension.Initialize
            AddHandler nodeType.NodeChildrenRequested, AddressOf NodeChildrenRequested
        End Sub
    
        Private Sub NodeChildrenRequested(ByVal Sender As Object, ByVal e As ExplorerNodeEventArgs)
            e.Node.ChildNodes.Add(ExampleNodeTypeProvider.NodeTypeId, _
                "Custom Node", Nothing)
        End Sub
    End Class
    
    [Export(typeof(IExplorerNodeTypeExtension))]
    [ExplorerNodeType(ExplorerNodeTypes.SiteNode)]
    internal class SiteNodeExtension : IExplorerNodeTypeExtension
    {
        public void Initialize(IExplorerNodeType nodeType)
        {
            nodeType.NodeChildrenRequested += NodeChildrenRequested;
        }
    
        private void NodeChildrenRequested(object sender, ExplorerNodeEventArgs e)
        {
            e.Node.ChildNodes.Add(ExampleNodeTypeProvider.NodeTypeId,
                "Custom Node", null);
        }
    }
    

Kompletny przykład

Poniższy przykład kodu zawiera kompletny kod, aby zdefiniować węzła prostego i dodać go jako element podrzędny węzeł witryny programu SharePoint, w Server Explorer.

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

Namespace Contoso.ServerExplorerExtension

    <Export(GetType(IExplorerNodeTypeProvider))> _
    <ExplorerNodeType(ExampleNodeTypeProvider.NodeTypeId)> _
    Friend Class ExampleNodeTypeProvider
        Implements IExplorerNodeTypeProvider
        Friend Const NodeTypeId As String = "Contoso.ServerExplorerNodeExample"

        Private Sub InitializeType(ByVal typeDefinition As IExplorerNodeTypeDefinition) _
            Implements IExplorerNodeTypeProvider.InitializeType
            typeDefinition.DefaultIcon = _
                My.Resources.CustomChildNodeIcon.ToBitmap()
            typeDefinition.IsAlwaysLeaf = True
        End Sub
    End Class

    <Export(GetType(IExplorerNodeTypeExtension))> _
    <ExplorerNodeType(ExplorerNodeTypes.SiteNode)> _
    Friend Class SiteNodeExtension
        Implements IExplorerNodeTypeExtension

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

        Private Sub NodeChildrenRequested(ByVal Sender As Object, ByVal e As ExplorerNodeEventArgs)
            e.Node.ChildNodes.Add(ExampleNodeTypeProvider.NodeTypeId, _
                "Custom Node", Nothing)
        End Sub
    End Class
End Namespace
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;
using Microsoft.VisualStudio.SharePoint.Explorer;

namespace Contoso.ServerExplorerExtension
{
    [Export(typeof(IExplorerNodeTypeProvider))]
    [ExplorerNodeType(ExampleNodeTypeProvider.NodeTypeId)]
    internal class ExampleNodeTypeProvider : IExplorerNodeTypeProvider
    {
        internal const string NodeTypeId = "Contoso.ServerExplorerNodeExample";

        public void InitializeType(IExplorerNodeTypeDefinition typeDefinition)
        {
            typeDefinition.DefaultIcon =
                Properties.Resources.CustomChildNodeIcon.ToBitmap();
            typeDefinition.IsAlwaysLeaf = true;
        }
    }

    [Export(typeof(IExplorerNodeTypeExtension))]
    [ExplorerNodeType(ExplorerNodeTypes.SiteNode)]
    internal class SiteNodeExtension : IExplorerNodeTypeExtension
    {
        public void Initialize(IExplorerNodeType nodeType)
        {
            nodeType.NodeChildrenRequested += NodeChildrenRequested;
        }

        private void NodeChildrenRequested(object sender, ExplorerNodeEventArgs e)
        {
            e.Node.ChildNodes.Add(ExampleNodeTypeProvider.NodeTypeId,
                "Custom Node", null);
        }
    }
}

Kompilowanie kodu

W przykładzie założono, że projekt jest wyświetlana ikona, o nazwie CustomChildNodeIcon jako zasobu osadzonego.W tym przykładzie wymaga również odwołania do następujących zestawów:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

  • System.Drawing

Wdrażanie rozszerzenia

Aby wdrożyć Server Explorer rozszerzenia, tworzenie Visual Studio extension (VSIX) pakiet Zgromadzenia i inne pliki, które chcesz dystrybuować z rozszerzeniem.Aby uzyskać więcej informacji, zobacz Wdrażanie rozszerzeń dla narzędzia programu SharePoint w programie Visual Studio.

Zobacz też

Zadania

Instruktaż: Rozszerzanie Server Explorer do wyświetlania składników Web Part

Koncepcje

Jak: rozszerzenie węzła programu SharePoint w programie Server Explorer

Inne zasoby

Rozszerzanie węzła połączenia programu SharePoint w programie Server Explorer