Udostępnij za pośrednictwem


Klasa FlavoredProjectFactoryBase

Klasa podstawowa dla fabryk flavored projektu.

Hierarchia dziedziczenia

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

Przestrzeń nazw:  Microsoft.VisualStudio.Shell.Flavor
Zestaw:  Microsoft.VisualStudio.Shell.11.0 (w Microsoft.VisualStudio.Shell.11.0.dll)

Składnia

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

Typ FlavoredProjectFactoryBase uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna FlavoredProjectFactoryBase Inicjuje nowe wystąpienie FlavoredProjectFactoryBase.

Początek

Właściwości

  Nazwa Opis
Właściwość chroniona serviceProvider Pobiera usługodawca projektu.

Początek

Metody

  Nazwa Opis
Metoda chroniona CanCreateProject Określa, czy nie można utworzyć projektu z podanych parametrów.
Metoda chroniona CreateProject Tworzy projekt.
Metoda chroniona Dispose Zbywa usługodawca.
Metoda publiczna Equals Określa, czy określony obiekt jest równa bieżącego obiektu. (Odziedziczone z Object).
Metoda chroniona Finalize Umożliwia obiekt spróbuj zwolnić zasoby i wykonywania innych operacji oczyszczania, zanim jest odzyskane w procesie wyrzucania elementów bezużytecznych. (Odziedziczone z Object).
Metoda publiczna GetHashCode Służy jako funkcja mieszania dla określonego typu. (Odziedziczone z Object).
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda chroniona Initialize Inicjuje factory projektu.
Metoda chroniona MemberwiseClone Tworzy kopię płytkie bieżące Object. (Odziedziczone z Object).
Metoda chroniona PreCreateForOuter Tworzy instancję projektu.
Metoda chroniona ProjectTypeGuids Zestaw projektów typu GUID są pobierane z pliku projektu.
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna IVsAggregatableProjectFactoryCorrected.GetAggregateProjectType
Jawna implementacja interfejsuMetoda prywatna IVsAggregatableProjectFactoryCorrected.PreCreateForOuter
Jawna implementacja interfejsuMetoda prywatna IVsProjectFactory.CanCreateProject
Jawna implementacja interfejsuMetoda prywatna IVsProjectFactory.Close
Jawna implementacja interfejsuMetoda prywatna IVsProjectFactory.CreateProject
Jawna implementacja interfejsuMetoda prywatna IVsProjectFactory.SetSite

Początek

Uwagi

Implementacja factory flavored projektu jest definiowany przez FlavoredProjectFactory.Zastąpić PreCreateForOuter metody zwraca nowy FlavoredProjectBase klasy.Klasa pochodna GetGuidProperty metody można przekierować wyszukiwania szablonów, aby znaleźć nowe szablony projektu dla tego smak.

Przykłady

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

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Shell.Flavor