FlavoredProjectFactoryBase Class
Base class for flavored project factories.
This API is not CLS-compliant.
Namespace: Microsoft.VisualStudio.Shell.Flavor
Assemblies: Microsoft.VisualStudio.Shell.9.0 (in Microsoft.VisualStudio.Shell.9.0.dll)
Microsoft.VisualStudio.Shell.10.0 (in Microsoft.VisualStudio.Shell.10.0.dll)
Syntax
'Declaración
<CLSCompliantAttribute(False)> _
Public MustInherit Class FlavoredProjectFactoryBase _
Implements IVsAggregatableProjectFactoryCorrected, IVsProjectFactory
'Uso
Dim instance As FlavoredProjectFactoryBase
[CLSCompliantAttribute(false)]
public abstract class FlavoredProjectFactoryBase : IVsAggregatableProjectFactoryCorrected,
IVsProjectFactory
[CLSCompliantAttribute(false)]
public ref class FlavoredProjectFactoryBase abstract : IVsAggregatableProjectFactoryCorrected,
IVsProjectFactory
[<AbstractClassAttribute>]
[<CLSCompliantAttribute(false)>]
type FlavoredProjectFactoryBase =
class
interface IVsAggregatableProjectFactoryCorrected
interface IVsProjectFactory
end
public abstract class FlavoredProjectFactoryBase implements IVsAggregatableProjectFactoryCorrected, IVsProjectFactory
Remarks
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.
Examples
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);
}
}
}
Inheritance Hierarchy
System.Object
Microsoft.VisualStudio.Shell.Flavor.FlavoredProjectFactoryBase
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.