Nasıl yapılır: SharePoint projeler için bir kısayol menü öğesi Ekle
Herhangi bir SharePoint proje için bir kısayol menü öğesi ekleyebilirsiniz.Bir kullanıcı bir proje düğümünde tıklattığında menü öğesi görünür Solution Explorer.
Aşağıdaki adımlar proje uzantısı zaten oluşturduğunuz varsayılır.Daha fazla bilgi için bkz. Nasıl yapılır: SharePoint proje uzantısı oluşturma.
SharePoint projeler için bir kısayol menü öğesi eklemek için
De Initialize yöntemi, ISharePointProjectExtension uygulaması, tanıtıcı ProjectMenuItemsRequested , olay projectService parametresi.
Olay işleyicisi, ProjectMenuItemsRequested olay, yeni bir ekleme IMenuItem itiraz ActionMenuItems veya AddMenuItems olay bağımsız değişkenler parametre koleksiyonu.
De Click olay işleyicisini yeni IMenuItem nesne, kullanıcı kısayol menü öğesini tıklattığında çalıştırılacak istediğiniz görevleri gerçekleştirin.
Örnek
SharePoint Proje düğümleri bir kısayol menü öğesi ekleme aşağıdaki kod örneği göstermektedir Solution Explorer.Ne zaman kullanıcı bir proje düðümü karşılaşır ve tıklattığında Yazma iletisi Output penceresine menü öğesi, Visual Studio, bir ileti görüntüler Çıkış pencere.Bu örnek iletiyi görüntülemek için SharePoint proje hizmeti kullanır.Daha fazla bilgi için bkz. SharePoint proje hizmeti kullanma.
Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint
Namespace Contoso.Examples
<Export(GetType(ISharePointProjectExtension))> _
Friend Class ExampleProjectExtensionWithMenu
Implements ISharePointProjectExtension
Private Sub Initialize(ByVal projectService As ISharePointProjectService) _
Implements ISharePointProjectExtension.Initialize
AddHandler projectService.ProjectMenuItemsRequested, AddressOf ProjectMenuItemsRequested
End Sub
Private Sub ProjectMenuItemsRequested(ByVal Sender As Object,
ByVal e As SharePointProjectMenuItemsRequestedEventArgs)
Dim menuItem As IMenuItem = e.ActionMenuItems.Add("Write Message to Output Window")
AddHandler menuItem.Click, AddressOf MenuItem_Click
End Sub
Private Sub MenuItem_Click(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
Dim project As ISharePointProject = TryCast(e.Owner, ISharePointProject)
If project IsNot Nothing Then
project.ProjectService.Logger.WriteLine(
String.Format("This message was written from a shortcut menu for the {0} project.", project.Name),
LogCategory.Status)
End If
End Sub
End Class
End Namespace
using System;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;
namespace Contoso.Examples
{
[Export(typeof(ISharePointProjectExtension))]
internal class ExampleProjectExtensionWithMenu : ISharePointProjectExtension
{
public void Initialize(ISharePointProjectService projectService)
{
projectService.ProjectMenuItemsRequested += projectService_ProjectMenuItemsRequested;
}
void projectService_ProjectMenuItemsRequested(object sender,
SharePointProjectMenuItemsRequestedEventArgs e)
{
IMenuItem menuItem = e.ActionMenuItems.Add("Write Message to Output Window");
menuItem.Click += MenuItemExtension_Click;
}
void MenuItemExtension_Click(object sender, MenuItemEventArgs e)
{
ISharePointProject project = e.Owner as ISharePointProject;
if (project != null)
{
project.ProjectService.Logger.WriteLine(
String.Format("This message was written from a shortcut menu for the {0} project.", project.Name),
LogCategory.Status);
}
}
}
}
Kod Derleniyor
Bu örnek bir sınıf kitaplığı projesi ile aşağıdaki derlemelerine başvurular gerektirir:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Uzantısı dağıtma
Uzantısı dağıtmak için bir Visual Studio uzantısı (VSIX) paketini derleme ve uzantısıyla dağıtmak istediğiniz diğer dosyaları.Daha fazla bilgi için bkz. Visual Studio SharePoint Araçlar için uzantıları dağıtma.
Ayrıca bkz.
Kavramlar
SharePoint projeleri genişletme