방법: 서버 탐색기에서 기본 제공 SharePoint 노드에 대한 데이터 가져오기
서버 탐색기의 각 기본 제공 SharePoint 노드가 나타내는 기본 SharePoint 구성 요소에 대한 데이터를 가져올 수 있습니다.자세한 내용은 서버 탐색기에서 SharePoint 연결 노드 확장을 참조하십시오.
예제
다음 코드 예제에서는 서버 탐색기에서 목록 노드가 나타내는 기본 SharePoint 목록에 대한 데이터를 가져오는 방법을 보여 줍니다.기본적으로 목록 노드에는 웹 브라우저에서 목록을 열기 위해 클릭할 수 있는 브라우저에서 보기 상황에 맞는 메뉴 항목이 있습니다.이 예제에서는 Visual Studio에서 목록을 직접 여는 View in Visual Studio 상황에 맞는 메뉴 항목을 추가하여 목록 노드를 확장합니다.이 코드에서는 노드의 목록 데이터에 액세스하여 Visual Studio에서 열 목록의 URL을 가져옵니다.
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);
}
}
}
이 예제에서는 SharePoint 프로젝트 서비스를 사용하여 Visual Studio에서 목록을 여는 데 사용되는 DTE 개체를 가져옵니다.SharePoint 프로젝트 서비스에 대한 자세한 내용은 SharePoint 프로젝트 서비스 사용을 참조하십시오.
SharePoint 노드의 확장을 만드는 기본 작업에 대한 자세한 내용은 방법: 서버 탐색기에서 SharePoint 노드 확장을 참조하십시오.
코드 컴파일
이 예제에는 다음 어셈블리에 대한 참조가 필요합니다.
EnvDTE
Microsoft.VisualStudio.SharePoint
Microsoft.VisualStudio.SharePoint.Explorer.Extensions
System.ComponentModel.Composition
확장 배포
서버 탐색기 확장을 배포하려면 어셈블리 및 확장과 함께 배포할 다른 모든 파일에 대한 VSIX(Visual Studio Extension) 패키지를 만듭니다.자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.
참고 항목
개념
Visual Studio에서 SharePoint 도구에 대한 확장 배포