Condividi tramite


Classe FlavoredProjectFactoryBase

Classe base per le factory condite di progetto.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.Shell.Flavor
Assembly:  Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)

Sintassi

'Dichiarazione
Public MustInherit Class FlavoredProjectFactoryBase _
    Implements IVsAggregatableProjectFactoryCorrected, IVsProjectFactory
public abstract class FlavoredProjectFactoryBase : IVsAggregatableProjectFactoryCorrected, 
    IVsProjectFactory

Il tipo FlavoredProjectFactoryBase espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico FlavoredProjectFactoryBase inizializza una nuova istanza di FlavoredProjectFactoryBase.

In alto

Proprietà

  Nome Descrizione
Proprietà protetta. serviceProvider Ottiene il provider di servizi del progetto.

In alto

Metodi

  Nome Descrizione
Metodo protetto CanCreateProject Determina se il progetto può essere creato con i parametri forniti.
Metodo protetto CreateProject crea un progetto.
Metodo protetto Dispose elimina il provider di servizi.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto Initialize Inizializza la factory del progetto.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto PreCreateForOuter Crea un'istanza del progetto.
Metodo protetto ProjectTypeGuids Ottiene il set di tipi di progetto GUID dal file di progetto.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato IVsAggregatableProjectFactoryCorrected.GetAggregateProjectType
Implementazione esplicita dell'interfacciaMetodo privato IVsAggregatableProjectFactoryCorrected.PreCreateForOuter
Implementazione esplicita dell'interfacciaMetodo privato IVsProjectFactory.CanCreateProject
Implementazione esplicita dell'interfacciaMetodo privato IVsProjectFactory.Close
Implementazione esplicita dell'interfacciaMetodo privato IVsProjectFactory.CreateProject
Implementazione esplicita dell'interfacciaMetodo privato IVsProjectFactory.SetSite

In alto

Note

L'implementazione di una factory condita di progetto è definita da FlavoredProjectFactory.Eseguire l'override del metodo di PreCreateForOuter per restituire una nuova classe derivata di FlavoredProjectBase .Il metodo di GetGuidProperty della classe derivata possibile reindirizzare i modelli ricerca per trovare i nuovi modelli di progetto per questa versione.

Esempi

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Shell.Flavor