FlavoredProjectFactoryBase 类
调味的项目工厂的基类。
继承层次结构
System.Object
Microsoft.VisualStudio.Shell.Flavor.FlavoredProjectFactoryBase
命名空间: Microsoft.VisualStudio.Shell.Flavor
程序集: Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)
语法
声明
Public MustInherit Class FlavoredProjectFactoryBase _
Implements IVsAggregatableProjectFactoryCorrected, IVsProjectFactory
public abstract class FlavoredProjectFactoryBase : IVsAggregatableProjectFactoryCorrected,
IVsProjectFactory
FlavoredProjectFactoryBase 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
FlavoredProjectFactoryBase | 初始化 FlavoredProjectFactoryBase 的新实例。 |
页首
属性
名称 | 说明 | |
---|---|---|
serviceProvider | 获取项目的服务提供程序。 |
页首
方法
名称 | 说明 | |
---|---|---|
CanCreateProject | 确定该项是否可以使用所提供的参数创建。 | |
CreateProject | 创建一个项目。 | |
Dispose | 配置服务提供程序。 | |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) | |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
Initialize | 初始化项目工厂。 | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
PreCreateForOuter | 创建项目的实例。 | |
ProjectTypeGuids | 从项目文件将收到项类型 GUID。 | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
显式接口实现
页首
备注
一个调味的项目工厂的实现由 FlavoredProjectFactory定义的。重写 PreCreateForOuter 方法返回一个新的 FlavoredProjectBase 派生类。派生类 GetGuidProperty 方法可以重模板搜索方向查找此类似的新项目模板。
示例
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);
}
}
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。