ProvideLanguageExtensionAttribute 类

将文件扩展名与特定语言服务。

继承层次结构

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideLanguageExtensionAttribute

命名空间:  Microsoft.VisualStudio.Shell
程序集:  Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)

语法

声明
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideLanguageExtensionAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideLanguageExtensionAttribute : RegistrationAttribute

ProvideLanguageExtensionAttribute 类型公开以下成员。

构造函数

  名称 说明
公共方法 ProvideLanguageExtensionAttribute(String, String) 使用指定的语言服务的 GUID,初始化 ProvideLanguageExtensionAttribute 属性的新实例,。
公共方法 ProvideLanguageExtensionAttribute(Type, String) 使用语言服务类中,的类型初始化 ProvideLanguageExtensionAttribute 属性的新实例,。

页首

属性

  名称 说明
公共属性 Extension 返回关联的文件扩展名。
公共属性 LanguageService 返回语言 GUID。
公共属性 TypeId 获取此属性的当前实例。 (继承自 RegistrationAttribute。)

页首

方法

  名称 说明
公共方法 Equals 基础结构。返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute。)
公共方法 GetHashCode 返回此实例的哈希代码。 (继承自 Attribute。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 IsDefaultAttribute 当在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute。)
公共方法 Match 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute。)
公共方法 Register 将文件扩展名和语言服务的 GUID 到注册表。 (重写 RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 Unregister 从注册表中移除文件扩展名和语言服务的 GUID。 (重写 RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)。)

页首

显式接口实现

  名称 说明
显式接口实现私有方法 _Attribute.GetIDsOfNames 将一组名称映射为对应的一组调度标识符。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfo 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfoCount 检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.Invoke 提供对某一对象公开的属性和方法的访问。 (继承自 Attribute。)

页首

备注

此用户定义的 C# 特性用于具有 Visual Studio 注册文件扩展名对特定语言服务。 此属性将在密钥和 regpkg.exe 使用的必需信息到程序集的元数据。 您仍必须注册语言服务;此属性仅在文件扩展名和语言服务之间的关联。 有关更多信息,请参见 注册 Vspackage

可以使用此特性的多个实例关联多个文件扩展名与语言服务。

受此属性的影响的注册表项存在 Visual Studio 注册表项下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[X.Y]\
  Languages\
    File Extensions\
      [FileExtension]\
        (Default) = RG_SZ: [LanguageServiceGuid]

其中:

  • [X.Y] 是一个 Visual Studio 版本号 (如 8.0 或 8.0exp。

  • [FileExtension] 是包含与驱动的过程的字符串文件扩展名;例如, “myext”。

  • [LanguageServiceGuid] 是语言服务的 GUID;例如, {B614A40A-80D9-4FAC-A6AD-FC2868FFF7CD}。

以下用户定义的属性为语言服务使用:

特性

说明

ProvideLanguageServiceAttribute

注册 Visual Studio 的语言服务并指定哪些功能支持。

ProvideLanguageExtensionAttribute

将文件扩展名与语言服务。

ProvideLanguageEditorOptionPageAttribute

为选项 " 对话框明确指定属性节点或页中语言服务。

ProvideLanguageCodeExpansionAttribute

在语言服务中指定位置信息支持代码段。

ProvideServiceAttribute

注册语言服务作为 Visual Studio 服务。 在托管代码中使用提供的所有服务此属性。

对实现者的说明

此特性类不能继承因此没有任何实现。

对调用者的说明

使用在 VSPackage 中此属性将文件扩展名与语言服务。

示例

此示例演示如何将文件扩展名 “.myext”与语言服务。

备注

Visual C# 允许用户定义的属性的简短窗体中删除该名称的 “属性”部分。本快速输入窗体用于此和此类中的其他示例。

using Microsoft.VisualStudio.Shell;

namespace MyLanguagePackage
{
    [ProvideLanguageExtension(typeof(MyLanguageService), ".myext")]
    public class MyLanguagePackage : Package
    {
    }
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Shell 命名空间