Jak: načtení služby SharePoint projektu
Můžete získat přístup k projektu služba SharePoint v následujících typech řešení:
Rozšíření systému projektu služby SharePoint, jako je například rozšíření projektu, rozšíření položky projektu nebo definice typu položky projektu.Další informace o těchto typech rozšíření naleznete v tématu Rozšíření systému projektů služby SharePoint.
Rozšíření uzlu Připojení služby SharePoint v Průzkumníku serveru.Další informace o těchto typech rozšíření naleznete v tématu Rozšíření uzlu připojení služby SharePoint v aplikaci Server Explorer.
Jiný typ rozšíření Visual Studia je například doplněk nebo VSPackage.
Načtení služby v rozšíření projektu systému
V rozšíření systému projektu služby SharePoint můžete získat přístup ke službě projektu pomocí vlastnosti ProjectService objektu ISharePointProject.
Můžete načíst také službu projektu pomocí následujících postupů.
Načtení služby v rozšíření projektu
Ve vaší implementaci rozhraní ISharePointProjectExtension nalezněte metodu Initialize.
Použijte parametr projectService pro přístup ke službě.
Následující příklad kódu demonstruje použití služby projektu k zápisu zprávy do okna Výstup a okna Seznam chyb jednoduchého rozšíření 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); } }
Další informace o vytváření rozšíření projektu naleznete v tématu Jak: vytvoření rozšíření projektu SharePoint.
Načtení služby v rozšíření položky projektu
Ve vaší implementaci rozhraní ISharePointProjectItemTypeExtension nalezněte metodu Initialize.
Použijte vlastnost ProjectService parametru projectItemType pro načtení služby.
Následující příklad kódu demonstruje použití služby projektu k zápisu zprávy do okna Výstup a okna Seznam chyb jednoduchého rozšíření Definice seznamu položek 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); } }
Další informace o vytváření rozšíření položek projektu naleznete v tématu Jak: vytvoření rozšíření položky služby SharePoint projektu.
Načtení služby v definici typu položky projektu
Ve vaší implementaci rozhraní ISharePointProjectItemTypeProvider nalezněte metodu InitializeType.
Použijte vlastnost ProjectService parametru typeDefinition pro načtení služby.
Následující příklad kódu demonstruje použití služby projektu k zápisu zprávy do okna Výstup a okna Seznam chyb v definici jednoduchého typu položky rozšíření 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); } }
Další informace o definování typů položek projektu naleznete v tématu Postup: definovat typ položky služby SharePoint projektu.
Načtení služby v rozšířeních Průzkumníka serveru
V rozšíření uzlu Připojení služby SharePoint v Průzkumníku serveru můžete získat přístup ke službě projektu pomocí vlastnosti ServiceProvider objektu IExplorerNode.
Chcete-li načíst službu v rozšíření Průzkumníka serveru
Získejte objekt IServiceProvider z vlastnosti ServiceProvider objektu IExplorerNode ve vašem rozšíření.
Použijte metodu GetService pro vyžádání objektu ISharePointProjectService.
Následující příklad kódu demonstruje použití služby projektu pro zápis zprávy do okna Výstup a do okna Seznam chyb z nabídky zástupců, která přidá rozšíření do seznamu uzlů v Průzkumníku serveru.
<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); } }
Další informace o rozšíření uzlu Připojení služby SharePoint v Průzkumníku serveru najdete v Jak: rozšířit uzlu SharePoint Server Explorer..
Načtení služby v ostatních rozšířeních aplikace Visual Studio
Můžete načíst službu projektu ve VSPackage nebo v rozšíření Visual Studia, které má přístup k objektu EnvDTE80.DTE2 v modelu automatizačních objektů, jako je například doplněk nebo průvodce šablonou projektu, který implementuje rozhraní Microsoft.VisualStudio.TemplateWizard.IWizard.
Ve VSPackage můžete vyžádat objekt ISharePointProjectService pomocí jedné z následujících metod:
Metoda GetService spravovaného VSPackage, který je odvozen od třídy Microsoft.VisualStudio.Shell.Package.Další informace naleznete v tématu Jak: využívat služby.
Statická metoda Package.GetGlobalService.Další informace naleznete v tématu Jak: použití GetGlobalService.
V rozšíření Visual Studia, které má přístup k objektu EnvDTE80.DTE2, můžete vyžádat objekt ISharePointProjectService pomocí metody GetService() objektu Microsoft.VisualStudio.Shell.ServiceProvider.Další informace naleznete v tématu Jak: získat služby z objektu zařízení DTE.
Příklad
Následující příklad kódu demonstruje načtení služby projektu v doplňku Visual Studia.Chcete-li použít tento kód, spusťte jej z třídy Connect v projektu doplňku.Objekt _applicationObject je automaticky generován v projektech doplňku; tento objekt je instance třídy rozhraní EnvDTE80.DTE2.
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);
}
Tento příklad vyžaduje:
Visual Studio projekt doplňku.Další informace naleznete v tématu Jak: Vytvoření doplňku.
Odkazy na sestavení Microsoft.VisualStudio.OLE.Interop, Microsoft.VisualStudio.Shell a Microsoft.VisualStudio.SharePoint.
Viz také
Úkoly
Jak: získat služby z objektu zařízení DTE
Jak: pomocí průvodců s šablony projektů