DocumentProperties 类
提供对文档特定属性支持与语言服务。
此 API 不兼容 CLS。 兼容 CLS 的替代 API 为 [None]。
继承层次结构
System.Object
Microsoft.VisualStudio.Shell.LocalizableProperties
Microsoft.VisualStudio.Package.DocumentProperties
命名空间: Microsoft.VisualStudio.Package
程序集: Microsoft.VisualStudio.Package.LanguageService.9.0(在 Microsoft.VisualStudio.Package.LanguageService.9.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService.11.0(在 Microsoft.VisualStudio.Package.LanguageService.11.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService(在 Microsoft.VisualStudio.Package.LanguageService.dll 中)
Microsoft.VisualStudio.Package.LanguageService.10.0(在 Microsoft.VisualStudio.Package.LanguageService.10.0.dll 中)
语法
声明
<CLSCompliantAttribute(False)> _
Public MustInherit Class DocumentProperties _
Inherits LocalizableProperties _
Implements ISelectionContainer, IDisposable
[CLSCompliantAttribute(false)]
public abstract class DocumentProperties : LocalizableProperties,
ISelectionContainer, IDisposable
DocumentProperties 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
DocumentProperties | 初始化 DocumentProperties 类的新实例。 |
页首
属性
名称 | 说明 | |
---|---|---|
Visible | 确定 DocumentProperties 对象是否显示在 属性 窗口。 |
页首
方法
页首
备注
,虽然在 Visual Studio时,文档的打开文档属性显示在 属性 窗口。 通常,源文档的属性和方法,因此 属性 窗口是空的。 但是,语言服务可以提供了可与任何该语言服务支持的文件类型的属性。 例如,因此,如果语言服务支持嵌入编码方案中的源文件,则可能会显示为文档属性。 当父属性,源文件更新。
应确定文档以了解如何的语言服务保存或保存。 通常,属性加载从并保存到源文件。 ,在分析文档时,属性可以获取。 当属性更新时,值可以插入因此立即到源文件,并且源保存文件时,属性将保存在它。
对实现者的说明
如果在语言服务中需要支持文档特定的属性,需要从 DocumentProperties 类派生类并将表示可查看和更改属性的公共属性。 请参见本主题中的示例显示了如何通常实现。 必须重写在 LanguageService 类的 CreateDocumentProperties 方法返回 DocumentProperties 对象的实例。
对调用者的说明
Visual Studio 管理 属性 窗口。 CreateDocumentProperties 方法的默认实现返回没有可见的属性,以便 属性 窗口显示 nothing DocumentProperties 对象。 如果实现拥有 DocumentProperties 类的版本与具有正确的特性的公共属性,这些属性自动出现在 属性 窗口。 立即提交的更改将属性。 属性 窗口影响上 DocumentProperties 对象。 请参见下面的示例以查看哪些属性需要应用于属性。
示例
下面的示例演示一个可视属性的一 DocumentProperties 对象。
using Microsoft.VisualStudio.Package;
using System.ComponentModel;
namespace MyLanguagePackage
{
class MyDocumentProperties : DocumentProperties
{
private string m_encoding;
public MyDocumentProperties(CodeWindowManager mgr) : base(mgr)
{
}
[DisplayNameAttribute("Encoding")]
[CategoryAttribute("General")]
[DescriptionAttribute("Changes encoding scheme")]
public string Encoding
{
get
{
return m_encoding;
}
set
{
m_encoding = value;
// Write value to source text.
// This can be done through a custom method
// (called SetProperyValue in this example) on your
// language service class like this:
Source src = this.GetSource();
if (src != null)
{
MyLanguageService service = src.LanguageService as MyLanguageService;
if (service != null)
{
service.SetPropertyValue(src, "Encoding", m_encoding);
}
}
}
}
}
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。