Compartir a través de


FlavoredProjectBase Class

A project that is a subtype/flavor of an inner project.

Inheritance Hierarchy

System.Object
  Microsoft.VisualStudio.Shell.Flavor.FlavoredProjectBase

Namespace:  Microsoft.VisualStudio.Shell.Flavor
Assembly:  Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)

Syntax

'Declaración
Public MustInherit Class FlavoredProjectBase _
    Implements IVsAggregatableProjectCorrected, IServiceProvider, IVsUIHierarchy, IVsHierarchy,  _
    IOleCommandTarget
public abstract class FlavoredProjectBase : IVsAggregatableProjectCorrected, 
    IServiceProvider, IVsUIHierarchy, IVsHierarchy, IOleCommandTarget

The FlavoredProjectBase type exposes the following members.

Constructors

  Name Description
Public method FlavoredProjectBase

Top

Methods

  Name Description
Protected method AdviseHierarchyEvents
Protected method Close
Public method Equals Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected method ExecCommand
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method FreeInterfaces
Protected method GetCanonicalName
Public method GetComInterface<Interface_T> A project derived from this base class will be aggregated with a native COM component (the ProjectAggregator object) that can also aggregate an inner project in case of flavoring.
Protected method GetGuidProperty
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Protected method GetNestedHierarchy
Protected method GetProperty
Protected method GetSite
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method InitializeForOuter Allows the project to initialize itself. At this point it possible to call the inner project. This method also allows canceling the project creation process.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method OnAggregationComplete This is called when all object in aggregation have received InitializeForOuter calls. At this point the aggregation is complete and fully functional.
Protected method ParseCanonicalName
Protected method QueryClose
Protected method QueryStatusCommand
Protected method SetGuidProperty
Protected method SetInnerProject This is were all QI for interface on the inner object should happen Then set the inner project wait for InitializeForOuter to be called to do the real initialization
Protected method SetProperty
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Protected method UnadviseHierarchyEvents
Protected method Unused0
Protected method Unused1
Protected method Unused2
Protected method Unused3
Protected method Unused4

Top

Events

  Name Description
Public event DirectoryAdded Called after a directory was added to this project.
Public event DirectoryRemoved Called after a directory was remove from this project.
Public event DirectoryRenamed Called after a directory was renamed in this project.
Public event FileAdded Called after a file was added to this project.
Public event FileRemoved Called after a file was remove from this project.
Public event FileRenamed Called after a file was renamed in this project.
Public event SccStatusChanged Called after the source code control status of a file in this project changed.

Top

Extension Methods

  Name Description
Public Extension Method IsCapabilityMatch (Defined by PackageUtilities.)

Top

Fields

  Name Description
Protected field _innerOleCommandTarget
Protected field _innerVsAggregatableProject
Protected field _innerVsHierarchy
Protected field _innerVsUIHierarchy
Protected field serviceProvider

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method IServiceProvider.GetService
Explicit interface implemetationPrivate method IOleCommandTarget.Exec
Explicit interface implemetationPrivate method IOleCommandTarget.QueryStatus
Explicit interface implemetationPrivate method IVsAggregatableProjectCorrected.GetAggregateProjectTypeGuids This must be delegetated to the inner most project
Explicit interface implemetationPrivate method IVsAggregatableProjectCorrected.InitializeForOuter Do the initialization here (such as loading flavor specific information from the project)
Explicit interface implemetationPrivate method IVsAggregatableProjectCorrected.OnAggregationComplete This is called when all object in aggregation have received InitializeForOuter calls. At this point the aggregation is complete and fully functional.
Explicit interface implemetationPrivate method IVsAggregatableProjectCorrected.SetAggregateProjectTypeGuids This must be delegated to the innermost project
Explicit interface implemetationPrivate method IVsAggregatableProjectCorrected.SetInnerProject This is where all QI for interface on the inner object should happen Then set the inner project wait for InitializeForOuter to be called to do the real initialization
Explicit interface implemetationPrivate method IVsHierarchy.AdviseHierarchyEvents
Explicit interface implemetationPrivate method IVsHierarchy.Close
Explicit interface implemetationPrivate method IVsHierarchy.GetCanonicalName
Explicit interface implemetationPrivate method IVsHierarchy.GetGuidProperty
Explicit interface implemetationPrivate method IVsHierarchy.GetNestedHierarchy
Explicit interface implemetationPrivate method IVsHierarchy.GetProperty
Explicit interface implemetationPrivate method IVsHierarchy.GetSite
Explicit interface implemetationPrivate method IVsHierarchy.ParseCanonicalName
Explicit interface implemetationPrivate method IVsHierarchy.QueryClose
Explicit interface implemetationPrivate method IVsHierarchy.SetGuidProperty
Explicit interface implemetationPrivate method IVsHierarchy.SetProperty
Explicit interface implemetationPrivate method IVsHierarchy.SetSite
Explicit interface implemetationPrivate method IVsHierarchy.UnadviseHierarchyEvents
Explicit interface implemetationPrivate method IVsHierarchy.Unused0
Explicit interface implemetationPrivate method IVsHierarchy.Unused1
Explicit interface implemetationPrivate method IVsHierarchy.Unused2
Explicit interface implemetationPrivate method IVsHierarchy.Unused3
Explicit interface implemetationPrivate method IVsHierarchy.Unused4
Explicit interface implemetationPrivate method IVsUIHierarchy.AdviseHierarchyEvents
Explicit interface implemetationPrivate method IVsUIHierarchy.Close
Explicit interface implemetationPrivate method IVsUIHierarchy.ExecCommand
Explicit interface implemetationPrivate method IVsUIHierarchy.GetCanonicalName
Explicit interface implemetationPrivate method IVsUIHierarchy.GetGuidProperty
Explicit interface implemetationPrivate method IVsUIHierarchy.GetNestedHierarchy
Explicit interface implemetationPrivate method IVsUIHierarchy.GetProperty
Explicit interface implemetationPrivate method IVsUIHierarchy.GetSite
Explicit interface implemetationPrivate method IVsUIHierarchy.ParseCanonicalName
Explicit interface implemetationPrivate method IVsUIHierarchy.QueryClose
Explicit interface implemetationPrivate method IVsUIHierarchy.QueryStatusCommand
Explicit interface implemetationPrivate method IVsUIHierarchy.SetGuidProperty
Explicit interface implemetationPrivate method IVsUIHierarchy.SetProperty
Explicit interface implemetationPrivate method IVsUIHierarchy.SetSite
Explicit interface implemetationPrivate method IVsUIHierarchy.UnadviseHierarchyEvents
Explicit interface implemetationPrivate method IVsUIHierarchy.Unused0
Explicit interface implemetationPrivate method IVsUIHierarchy.Unused1
Explicit interface implemetationPrivate method IVsUIHierarchy.Unused2
Explicit interface implemetationPrivate method IVsUIHierarchy.Unused3
Explicit interface implemetationPrivate method IVsUIHierarchy.Unused4

Top

Remarks

The default behavior of all methods is to delegate to the inner project. For any behavior you want to change, simply handle the request yourself.

You must set the serviceProvider field on this class before attempting to load the project.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Shell.Flavor Namespace