FlavoredProjectFactoryBase Class
Base class for flavored project factories.
Assembly: Microsoft.VisualStudio.Shell.14.0 (in Microsoft.VisualStudio.Shell.14.0.dll)
| Name | Description | |
|---|---|---|
![]() | FlavoredProjectFactoryBase() | Initializes a new instance of FlavoredProjectFactoryBase. |
| Name | Description | |
|---|---|---|
![]() | serviceProvider | Gets the project's service provider. |
| Name | Description | |
|---|---|---|
![]() | CanCreateProject(String, UInt32) | Determines whether or not the project can be created with the supplied parameters. |
![]() | CreateProject(String, String, String, UInt32, Guid, IntPtr, Int32) | Creates a project. |
![]() | Dispose(Boolean) | Disposes the service provider. |
![]() | Equals(Object) | (Inherited from Object.) |
![]() | Finalize() | (Inherited from Object.) |
![]() | GetHashCode() | (Inherited from Object.) |
![]() | GetType() | (Inherited from Object.) |
![]() | Initialize() | Initializes the project factory. |
![]() | MemberwiseClone() | (Inherited from Object.) |
![]() | PreCreateForOuter(IntPtr) | Creates an instance of the project. |
![]() | ProjectTypeGuids(String) | Gets the set of project type GUIDs from the project file. |
![]() | ToString() | (Inherited from Object.) |
An implementation of a flavored project factory is defined by FlavoredProjectFactory. Override the PreCreateForOuter method to return a new FlavoredProjectBase derived class. The derived class GetGuidProperty method can redirect the templates search to find new project templates for this flavor.
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);
}
}
}
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




