Partager via


FlavoredProjectFactoryBase, classe

Classe de base pour les fabriques assaisonnées de projet.

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Shell.Flavor.FlavoredProjectFactoryBase

Espace de noms :  Microsoft.VisualStudio.Shell.Flavor
Assembly :  Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)

Syntaxe

'Déclaration
Public MustInherit Class FlavoredProjectFactoryBase _
    Implements IVsAggregatableProjectFactoryCorrected, IVsProjectFactory
public abstract class FlavoredProjectFactoryBase : IVsAggregatableProjectFactoryCorrected, 
    IVsProjectFactory

Le type FlavoredProjectFactoryBase expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique FlavoredProjectFactoryBase Initialise une nouvelle instance d'FlavoredProjectFactoryBase.

Début

Propriétés

  Nom Description
Propriété protégée serviceProvider Obtient le fournisseur de services du projet.

Début

Méthodes

  Nom Description
Méthode protégée CanCreateProject Détermine si le projet peut être créé avec les paramètres fournis.
Méthode protégée CreateProject Crée un projet.
Méthode protégée Dispose Supprime le fournisseur de services.
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée Initialize Initialise la fabrique de projet.
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégée PreCreateForOuter Crée une instance du projet.
Méthode protégée ProjectTypeGuids Obtient le jeu de type GUID de projet à partir du fichier projet.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée IVsAggregatableProjectFactoryCorrected.GetAggregateProjectType
Implémentation d'interface expliciteMéthode privée IVsAggregatableProjectFactoryCorrected.PreCreateForOuter
Implémentation d'interface expliciteMéthode privée IVsProjectFactory.CanCreateProject
Implémentation d'interface expliciteMéthode privée IVsProjectFactory.Close
Implémentation d'interface expliciteMéthode privée IVsProjectFactory.CreateProject
Implémentation d'interface expliciteMéthode privée IVsProjectFactory.SetSite

Début

Remarques

Une implémentation d'une fabrique assaisonnée de projet est définie par FlavoredProjectFactory.Substituez la méthode d'PreCreateForOuter pour retourner une nouvelle classe dérivée d'FlavoredProjectBase.La méthode d'GetGuidProperty de classe dérivée peut rediriger la recherche de modèles pour rechercher de nouveaux modèles de projet pour cette version.

Exemples

namespace Microsoft.Samples.VisualStudio.IronPythonProject.WPFProviders
{
    [ComVisible(true)]
    [ClassInterface(ClassInterfaceType.None)]
    [Guid("FEBF49B8-D18C-4745-ADE0-35BF632E0533")]
    public class PythonWPFFlavor : FlavoredProjectBase
    {
        public PythonWPFFlavor(IServiceProvider site)
        {
            this.serviceProvider = site;
        }

        protected override Guid GetGuidProperty(uint itemId, int propId)
        {
            if (propId == 
                (int)__VSHPROPID2.VSHPROPID_AddItemTemplatesGuid)
            {
                return typeof(PythonWPFProjectFactory).GUID;
            }
            return base.GetGuidProperty(itemId, propId);
        }

        protected override int GetProperty(uint itemId, int propId, out object property)
        {
            return base.GetProperty(itemId, propId, out property);
        }
    }
    [Guid(PythonWPFProjectFactory.PythonWPFProjectFactoryGuid)]
    public class PythonWPFProjectFactory : FlavoredProjectFactoryBase
    {
        public const string PythonWPFProjectFactoryGuid = "229B3E77-97E9-4f6d-9151-E6D103EA4D4A";

        private IServiceProvider site;
        public PythonWPFProjectFactory(IServiceProvider site) : base()
        {
            this.site = site;
        }

        protected override object PreCreateForOuter(IntPtr outerProjectIUnknown)
        {
            return new PythonWPFFlavor(site);
        }
    }
}

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Shell.Flavor, espace de noms