Aracılığıyla paylaş


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

  1. Uygulamanız içinde ISharePointProjectExtension bulun, arabirim Initialize yöntemi.

  2. 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

  1. Uygulamanız içinde ISharePointProjectItemTypeExtension bulun, arabirim Initialize yöntemi.

  2. 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

  1. Uygulamanız içinde ISharePointProjectItemTypeProvider bulun, arabirim InitializeType yöntemi.

  2. 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

  1. Al bir IServiceProvider gelen nesne ServiceProvider özelliği bir IExplorerNode , uzantı nesnesi.

  2. 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:

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.

Ee471432.collapse_all(tr-tr,VS.110).gifÖ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

Kavramlar

SharePoint proje hizmeti kullanma