Nasıl yapılır: SharePoint proje hizmet almak
Aşağıdaki tür çözümlerin SharePoint proje hizmetinde erişebilirsiniz:
SharePoint proje sistemi projesi uzantısı, proje öğesi uzantısı veya proje öğesi türü tanımı gibi bir uzantısıdır.Bu tür uzantılar hakkında daha fazla bilgi için bkz: SharePoint proje sistem genişletme.
Uzantı SharePoint bağlantıları düğümünde Server Explorer.Bu tür uzantılar hakkında daha fazla bilgi için bkz: Server Explorer'da SharePoint bağlantı düğümü genişletme.
Visual Studio uzantısı, bir eklenti ya da bir VSPackage gibi başka bir tür.
Proje sistem uzantıları hizmetinde alınıyor
SharePoint proje sistem herhangi bir uzantı kullanarak proje hizmeti erişebilirsiniz ProjectService özelliği, bir ISharePointProject nesne.
Ayrıca, aşağıdaki yordamları kullanarak proje hizmeti de alabilirsiniz.
Proje uzantısı hizmetinde almak için
Uygulamanız içinde ISharePointProjectExtension bulun, arabirim Initialize yöntemi.
Use projectService hizmete erişmek için parametre.
Aşağıdaki kod örneği proje hizmeti ileti yazmak için nasıl kullanılacağı gösterilmiştir Çıkış pencere ve Error List basit proje uzantısı penceresinde.
<Export(GetType(ISharePointProjectExtension))> _ Friend Class GetServiceInProject Implements ISharePointProjectExtension Private Sub Initialize(ByVal projectService As ISharePointProjectService) _ Implements ISharePointProjectExtension.Initialize projectService.Logger.WriteLine("This message was written by using the " & _ "project service in a project extension.", LogCategory.Message) End Sub End Class
[Export(typeof(ISharePointProjectExtension))] internal class GetServiceInProject : ISharePointProjectExtension { public void Initialize(ISharePointProjectService projectService) { projectService.Logger.WriteLine("This message was written by using the " + "project service in a project extension.", LogCategory.Message); } }
Proje uzantıları oluşturma hakkında daha fazla bilgi için bkz: Nasıl yapılır: SharePoint proje uzantısı oluşturma.
Proje öğesi uzantıdaki hizmet almak için
Uygulamanız içinde ISharePointProjectItemTypeExtension bulun, arabirim Initialize yöntemi.
Use ProjectService özelliðinin projectItemType hizmet almak için parametre.
Aşağıdaki kod örneği proje hizmeti ileti yazmak için nasıl kullanılacağı gösterilmiştir Çıkış pencere ve Error List basit bir uzantısı penceresinde Liste tanımını proje öğesi.
<Export(GetType(ISharePointProjectItemTypeExtension))> _ <SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.ListDefinition")> _ Friend Class GetServiceInProjectItem Implements ISharePointProjectItemTypeExtension Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _ Implements ISharePointProjectItemTypeExtension.Initialize projectItemType.ProjectService.Logger.WriteLine("This message was written " & _ "by using the project service in an extension for the ListDefinition project item.", _ LogCategory.Message) End Sub End Class
[Export(typeof(ISharePointProjectItemTypeExtension))] [SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.ListDefinition")] internal class GetServiceInProjectItem : ISharePointProjectItemTypeExtension { public void Initialize(ISharePointProjectItemType projectItemType) { projectItemType.ProjectService.Logger.WriteLine("This message was written " + "by using the project service in an extension for the ListDefinition project item.", LogCategory.Message); } }
Proje öğesi uzantıları oluşturma hakkında daha fazla bilgi için bkz: Nasıl yapılır: SharePoint proje öğesi uzantısı oluşturma.
Proje öğesi türü tanımı hizmetinde almak için
Uygulamanız içinde ISharePointProjectItemTypeProvider bulun, arabirim InitializeType yöntemi.
Use ProjectService özelliðinin typeDefinition hizmet almak için parametre.
Aşağıdaki kod örneği proje hizmeti ileti yazmak için nasıl kullanılacağı gösterilmiştir Çıkış pencere ve Error List basit proje öğesi türü tanımı penceresinde.
<Export(GetType(ISharePointProjectItemTypeProvider))> _ <SharePointProjectItemType("Contoso.CustomAction")> _ Friend Class CustomActionProvider Implements ISharePointProjectItemTypeProvider Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _ Implements ISharePointProjectItemTypeProvider.InitializeType projectItemTypeDefinition.ProjectService.Logger.WriteLine("This message was written " & _ "by using the project service in the Custom Action project item type.", _ LogCategory.Message) End Sub End Class
[Export(typeof(ISharePointProjectItemTypeProvider))] [SharePointProjectItemType("Contoso.CustomAction")] internal class CustomActionProvider : ISharePointProjectItemTypeProvider { public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition) { projectItemTypeDefinition.ProjectService.Logger.WriteLine("This message was written " + "by using the project service in the Custom Action project item type definition.", LogCategory.Message); } }
Proje öğesi türleri tanımlama hakkında daha fazla bilgi için bkz: Nasıl yapılır: SharePoint proje öğesi türü tanýmlamak.
Server Explorer uzantıları hizmetinde alınıyor
' Nin bir uzantısı olarak SharePoint bağlantıları düğümünde Server Explorer, proje hizmeti kullanarak erişebilirsiniz ServiceProvider özelliği, bir IExplorerNode nesne.
Server Explorer uzantısındaki hizmet almak için
Al bir IServiceProvider gelen nesne ServiceProvider özelliği bir IExplorerNode , uzantı nesnesi.
Use GetService yöntemi istemek için bir ISharePointProjectService nesne.
Aşağıdaki kod örneği proje hizmeti ileti yazmak için nasıl kullanılacağı gösterilmiştir Çıkış pencere ve Error List pencere kısayol menüsünden liste düğümler için uzantıyı ekler Server Explorer.
<Export(GetType(IExplorerNodeTypeExtension))> _ <ExplorerNodeType(ExtensionNodeTypes.ListNode)> _ Friend Class ListNodeExtension Implements IExplorerNodeTypeExtension Private projectService As ISharePointProjectService Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _ Implements IExplorerNodeTypeExtension.Initialize AddHandler nodeType.NodeMenuItemsRequested, AddressOf nodeType_NodeMenuItemsRequested End Sub Private Sub nodeType_NodeMenuItemsRequested(ByVal Sender As Object, ByVal e As ExplorerNodeMenuItemsRequestedEventArgs) Dim writeMessageMenuItem As IMenuItem = e.MenuItems.Add("Write Message to Output Window and Error List Window") AddHandler writeMessageMenuItem.Click, AddressOf writeMessageMenuItem_Click End Sub Private Sub writeMessageMenuItem_Click(ByVal Sender As Object, ByVal e As MenuItemEventArgs) Dim node As IExplorerNode = CType(e.Owner, IExplorerNode) If projectService Is Nothing Then projectService = CType(node.ServiceProvider.GetService(GetType(ISharePointProjectService)), ISharePointProjectService) End If projectService.Logger.WriteLine("Clicked the menu item for " + node.Text, LogCategory.Message) End Sub End Class
[Export(typeof(IExplorerNodeTypeExtension))] [ExplorerNodeType(ExtensionNodeTypes.ListNode)] internal class ListNodeExtension : IExplorerNodeTypeExtension { private ISharePointProjectService projectService; public void Initialize(IExplorerNodeType nodeType) { nodeType.NodeMenuItemsRequested += nodeType_NodeMenuItemsRequested; } void nodeType_NodeMenuItemsRequested(object sender, ExplorerNodeMenuItemsRequestedEventArgs e) { IMenuItem writeMessageMenuItem = e.MenuItems.Add("Write Message to Output Window and Error List Window"); writeMessageMenuItem.Click += writeMessageMenuItem_Click; } void writeMessageMenuItem_Click(object sender, MenuItemEventArgs e) { IExplorerNode node = (IExplorerNode)e.Owner; if (projectService == null) { projectService = (ISharePointProjectService)node.ServiceProvider.GetService(typeof(ISharePointProjectService)); } projectService.Logger.WriteLine("Clicked the menu item for " + node.Text, LogCategory.Message); } }
Genişletme hakkında daha fazla bilgi için SharePoint bağlantıları düğümünde Server Explorer, bkz: Nasıl yapılır: Server Explorer'da SharePoint düğümü genişletme.
Diğer Visual Studio Extensions hizmetinde alınıyor
Bir VSPackage veya erişimi olan herhangi bir Visual Studio uzantısı proje hizmeti alabilir bir EnvDTE80.DTE2 bir eklenti veya uygulayan bir proje şablonu Sihirbazı gibi Otomasyon nesne modeli nesnesinde Microsoft.VisualStudio.TemplateWizard.IWizard arabirimi.
Bir VSPackage içinde isteyebileceği bir ISharePointProjectService aşağıdaki yöntemlerden birini kullanarak nesne:
GetService Yöntemi türetildiği yönetilen bir VSPackage, Microsoft.VisualStudio.Shell.Package sınıfı.Daha fazla bilgi için bkz. Nasıl yapılır: bir servisini kullanmak.
Statik Package.GetGlobalService yöntemi.Daha fazla bilgi için bkz. Nasıl yapılır: GetGlobalService kullanın.
Erişimi olan bir Visual Studio uzantısındaki bir EnvDTE80.DTE2 request nesnesi, bir ISharePointProjectService kullanarak nesne GetService() yöntemi bir Microsoft.VisualStudio.Shell.ServiceProvider nesne.Daha fazla bilgi için bkz. Nasıl yapılır: dte nesnesinin bir hizmet alın.
Örnek
Aşağıdaki kod örneği, bir Visual Studio eklentisi proje hizmetinde almak gösterilmiştir.Çalıştır buradan bu kodu kullanmak için Connect bir eklenti projesi sınıfında._applicationObject Nesne projelerinde; eklenti, otomatik olarak oluşturulur Bu nesne örneği olan EnvDTE80.DTE2 arabirimi.
Dim serviceProvider As Microsoft.VisualStudio.Shell.ServiceProvider = _
New Microsoft.VisualStudio.Shell.ServiceProvider( _
TryCast(_applicationObject, Microsoft.VisualStudio.OLE.Interop.IServiceProvider))
Dim projectService As Microsoft.VisualStudio.SharePoint.ISharePointProjectService = _
TryCast(serviceProvider.GetService(GetType(Microsoft.VisualStudio.SharePoint.ISharePointProjectService)), _
Microsoft.VisualStudio.SharePoint.ISharePointProjectService)
If projectService IsNot Nothing Then
projectService.Logger.WriteLine("This message was written by using the SharePoint project service.", _
Microsoft.VisualStudio.SharePoint.LogCategory.Message)
End If
Microsoft.VisualStudio.Shell.ServiceProvider serviceProvider =
new Microsoft.VisualStudio.Shell.ServiceProvider(
_applicationObject as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);
Microsoft.VisualStudio.SharePoint.ISharePointProjectService projectService =
serviceProvider.GetService(typeof(Microsoft.VisualStudio.SharePoint.ISharePointProjectService))
as Microsoft.VisualStudio.SharePoint.ISharePointProjectService;
if (projectService != null)
{
projectService.Logger.WriteLine("This message was written by using the SharePoint project service.",
Microsoft.VisualStudio.SharePoint.LogCategory.Message);
}
Bu örnek aşağıdakileri gerektirir:
Bir Visual Studio eklenti projesi.Daha fazla bilgi için bkz. Nasıl yapılır: bir eklenti oluşturmak.
Microsoft.VisualStudio.OLE.Interop, Microsoft.VisualStudio.Shell ve Microsoft.VisualStudio.SharePoint derlemelerine başvurular.
Ayrıca bkz.
Görevler
Nasıl yapılır: bir eklenti oluşturmak
Nasıl yapılır: bir servisini kullanmak
Nasıl yapılır: dte nesnesinin bir hizmet alın
Nasıl yapılır: Proje Şablonları ile sihirbazları kullanma