Como: adicionar um nó do SharePoint personalizado ao Server Explorer
Você pode adicionar nós personalizada sob o SharePoint Connections nó na Server Explorer.Isso é útil quando você deseja exibir os componentes adicionais do SharePoint que não são exibidas no Server Explorer por padrão.Para obter mais informações, consulte Estendendo o nó de conexões do SharePoint no Server Explorer.
Para adicionar um nó personalizado, primeiro crie uma classe que define o novo nó.Em seguida, crie uma extensão que adiciona o nó como um filho de um nó existente.
Para definir o novo nó.
Crie um projeto de biblioteca de classe.
Adicione referências para os seguintes conjuntos de módulos (assemblies) :
Microsoft.VisualStudio.SharePoint
Microsoft.VisualStudio.SharePoint.Explorer.Extensions
System.ComponentModel.Composition
System.Drawing
Crie uma nova classe que implemente a interface IExplorerNodeTypeProvider.
Adicione os seguintes atributos à classe:
System.ComponentModel.Composition.ExportAttribute.Este atributo permite que Visual Studio descobrir e carregar seu IExplorerNodeTypeProvider implementação.Passar o IExplorerNodeTypeProvider tipo para o construtor de atributo.
ExplorerNodeTypeAttribute.Em uma definição de nó, este atributo especifica o identificador de seqüência de caracteres para o novo nó.Recomendamos que você use o formato o nome da empresa. nome do nó para certificar-se de que todos os nós têm um identificador exclusivo.
Na sua implementação da IExplorerNodeTypeProvider.InitializeType método, o uso de membros da typeDefinition parâmetro para configurar o comportamento do novo nó.Este parâmetro é um IExplorerNodeTypeDefinition que fornece acesso para os eventos definidos no objeto do IExplorerNodeEvents interface.
O exemplo de código a seguir demonstra como definir um novo nó.Este exemplo assume que o seu projeto contém um ícone chamado CustomChildNodeIcon como um recurso incorporado.
<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; } }
Para adicionar o novo nó como um filho de um nó existente
No mesmo projeto como sua definição de nó, criar uma classe que implementa o IExplorerNodeTypeExtension interface.
Adicione o atributo System.ComponentModel.Composition.ExportAttribute à classe.Este atributo permite que Visual Studio descobrir e carregar seu IExplorerNodeTypeExtension implementação.Passar o IExplorerNodeTypeExtension tipo para o construtor de atributo.
Adicione o atributo ExplorerNodeTypeAttribute à classe.Em uma extensão de nó, este atributo especifica o identificador de seqüência de caracteres para o tipo de nó que você deseja estender.
Para especificar os tipos de nó internos fornecidos pelo Visual Studio, passe um dos seguintes valores de enumeração para o construtor de atributo:
ExplorerNodeTypes: Usar esses valores para especificar nós de conexão do site (os nós que exibem os URLs do site), de nós ou todos os outros nós pai no site Server Explorer.
ExtensionNodeTypes: Use esses valores para especificar um de nós internos que representam um componente individual em um site do SharePoint, como, por exemplo, um nó que representa uma lista, campo ou tipo de conteúdo.
Na sua implementação do Initialize método, o identificador a NodeChildrenRequested evento da IExplorerNodeType parâmetro.
No NodeChildrenRequested manipulador de eventos, adicione o novo nó à coleção de nós filho da Node objeto que é exposto pelo parâmetro de argumentos de evento.
O exemplo de código a seguir demonstra como adicionar o novo nó como um filho do nó site SharePoint no 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); } }
Exemplo Completo
O exemplo de código a seguir fornece o código completo para definir um nó simples e adicioná-lo como um filho do nó site SharePoint no 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);
}
}
}
Compilando o código
Este exemplo assume que o seu projeto contém um ícone chamado CustomChildNodeIcon como um recurso incorporado.Este exemplo também requer referências aos assemblies seguintes:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
System.Drawing
Implantação da extensão
Para implantar o Server Explorer extensão, criar um Visual Studio (VSIX) da extensão do pacote para o assembly e outros arquivos que você deseja distribuir com a extensão.Para obter mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.
Consulte também
Tarefas
Passo a passo: Estendendo o Server Explorer para exibir Web Parts
Conceitos
Como: estender um nó do SharePoint no Server Explorer
Outros recursos
Estendendo o nó de conexões do SharePoint no Server Explorer