Udostępnij za pośrednictwem


Porady: pobieranie usługi projektu SharePoint

Można uzyskać dostęp do usługi projektu programu SharePoint w następujących typów rozwiązań:

  • Rozszerzenie systemu projektu programu SharePoint, takich jak rozszerzenie projektu, rozszerzenie elementu projektu lub definicji typu elementu projektu.Aby uzyskać więcej informacji o tych typach rozszerzeń, zobacz Rozszerzanie systemu projektu SharePoint.

  • Rozszerzenie Połączeń SharePoint węzeł w Server Explorer.Aby uzyskać więcej informacji o tych typach rozszerzeń, zobacz Rozszerzanie węzła połączeń SharePoint w Eksploratorze serwera.

  • Innego rodzaju rozszerzenie programu Visual Studio, takich jak dodatek lub VSPackage.

Trwa pobieranie usługi w rozszerzeniach systemu projektu

Wszystkie rozszerzenia systemu projektu programu SharePoint, można uzyskać dostęp do usługi projektu za pomocą ProjectService właściwość ISharePointProject obiektu.

Usługa projektu można także pobrać przy użyciu następujących procedur.

Aby pobrać usługi w rozszerzeniu projektu

  1. W implementacji ISharePointProjectExtension interfejsu, zlokalizuj Initialize metody.

  2. Użyj projectService parametru dostęp do usługi.

    Poniższy przykład kodu demonstruje, jak napisać wiadomość do za pomocą usługi project produkcji okna i Listy błędów okna w rozszerzeniu prostego projektu.

    <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);
        }
    }
    

    Aby uzyskać więcej informacji dotyczących tworzenia rozszerzeń projektu, zobacz Porady: tworzenie rozszerzenia projektu SharePoint.

Aby pobrać usługi w rozszerzeniu element projektu

  1. W implementacji ISharePointProjectItemTypeExtension interfejsu, zlokalizuj Initialize metody.

  2. Użyj ProjectService właściwość projectItemType parametru do pobrania, usługa.

    Poniższy przykład kodu demonstruje, jak napisać wiadomość do za pomocą usługi project produkcji okna i Listy błędów okna w prostym rozszerzeniem Listy definicji elementu projektu.

    <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);
        }
    }
    

    Aby uzyskać więcej informacji dotyczących tworzenia rozszerzeń element projektu, zobacz Porady: tworzenie rozszerzenia elementu projektu SharePoint.

Aby pobrać usługi w definicji typu element projektu

  1. W implementacji ISharePointProjectItemTypeProvider interfejsu, zlokalizuj InitializeType metody.

  2. Użyj ProjectService właściwość typeDefinition parametru do pobrania, usługa.

    Poniższy przykład kodu demonstruje, jak napisać wiadomość do za pomocą usługi project produkcji okna i Listy błędów okna w definicji typu elementu prostego projektu.

    <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);
        }
    }
    

    Aby uzyskać więcej informacji o definiowaniu typów elementów projektu, zobacz Porady: definiowanie typu elementu projektu SharePoint.

Trwa pobieranie usługi Server Explorer rozszerzeniach

Do rozszerzenia Połączeń SharePoint węzeł w Server Explorer, można uzyskać dostęp do usługi projektu za pomocą ServiceProvider właściwość IExplorerNode obiektu.

Aby pobrać rozszerzenia Server Explorer usługi

  1. Pobierz IServiceProvider obiekt z ServiceProvider właściwość IExplorerNode obiektu użytkownika rozszerzenia.

  2. Użyj GetService metoda żądania ISharePointProjectService obiektu.

    Poniższy przykład kodu demonstruje, jak napisać wiadomość do za pomocą usługi project produkcji okna i Listy błędów okna z menu skrótów, które rozszerzenia dodaje do listy węzłów w 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);
        }
    }
    

    Aby uzyskać więcej informacji o rozszerzaniu Połączeń SharePoint węzeł w Server Explorer, zobacz Porady: rozszerzanie węzła SharePoint w Eksploratorze serwera.

Trwa pobieranie usługi do innych rozszerzeń programu Visual Studio

Można pobrać usługi project VSPackage lub rozszerzenia programu Visual Studio, które ma dostęp do DTE2 obiektu w modelu obiektowym automatyzacji, takich jak dodatek lub Kreatora szablonów projektu, który implementuje IWizard interfejsu.

W VSPackage, możesz poprosić o ISharePointProjectService obiektu przy użyciu jednej z następujących metod:

Rozszerzenia programu Visual Studio, który ma dostęp do DTE2 obiektu, możesz poprosić o ISharePointProjectService obiektu za pomocą GetService metoda ServiceProvider obiektu.Aby uzyskać więcej informacji, zobacz Jak: Get usługi z obiektu DTE.

Przykład

Poniższy przykład kodu demonstruje, jak pobrać usługi projektu w dodatku programu Visual Studio.Aby użyć tego kodu, należy uruchomić go z Connect klasy w projekcie Dodaj._applicationObject Obiekt jest generowany automatycznie dodać w projekty; Ten obiekt jest wystąpieniem DTE2 interfejsu.

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);
}

W tym przykładzie wymaga:

  • Dodaj w Visual Studio projektu.Aby uzyskać więcej informacji, zobacz Porady: tworzenie dodatku.

  • Odwołania do zestawów Microsoft.VisualStudio.OLE.Interop, Microsoft.VisualStudio.Shell i Microsoft.VisualStudio.SharePoint.

Zobacz też

Zadania

Porady: tworzenie dodatku

Jak: zużywają usługi

Jak: Get usługi z obiektu DTE

Porady: korzystanie z kreatora z szablonami projektu

Koncepcje

Korzystanie z usługi projektu SharePoint