VCCodeModel 接口
一个对象,用于提供对包含的任何代码元素的项目级别访问。
命名空间: Microsoft.VisualStudio.VCCodeModel
程序集: Microsoft.VisualStudio.VCCodeModel(在 Microsoft.VisualStudio.VCCodeModel.dll 中)
语法
声明
<GuidAttribute("E6691CDE-9A41-4891-8D8C-C1E93958E6A0")> _
Public Interface VCCodeModel _
Inherits CodeModel2
[GuidAttribute("E6691CDE-9A41-4891-8D8C-C1E93958E6A0")]
public interface VCCodeModel : CodeModel2
[GuidAttribute(L"E6691CDE-9A41-4891-8D8C-C1E93958E6A0")]
public interface class VCCodeModel : CodeModel2
[<GuidAttribute("E6691CDE-9A41-4891-8D8C-C1E93958E6A0")>]
type VCCodeModel =
interface
interface CodeModel2
end
public interface VCCodeModel extends CodeModel2
VCCodeModel 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
Attributes | 获取对象的所有特性的集合。 | |
Classes | 获取对象的类集合。 | |
CodeElements | 获取代码元素的集合。 | |
Delegates | 获取对象的委托的集合。 | |
DialogClasses | 获取对话类的集合。 | |
DTE | 获取顶级扩展性对象。 | |
Enums | 获取对象的枚举集合。 | |
Functions | 获取对象的函数集合。 | |
IDLImports | 从父对象的 .idl 文件获取 Import 语句的集合。 | |
IDLLibraries | 获取对象上 Library 元素的集合。 | |
Imports | 获取父对象的 #import 语句的集合。 | |
Includes | 获取对象的 #include 语句的集合。 | |
Interfaces | 获取对象的接口的集合。 | |
IsCaseSensitive | 获取一个值,该值指示代码元素是否区分大小写。 | |
IsSynchronized | 确定 VCCodeModel 是否与解决方案的源代码同步。 | |
Language | 获取用于创作代码的编程语言。 | |
Macros | 获取对象的宏(#define 语句)的集合。 | |
Maps | 获取对象的映射集合。 | |
Namespaces | 获取对象的命名空间的集合。 | |
Parent | 获取给定对象的直接父对象。 | |
Structs | 获取对象的结构元素的集合。 | |
Typedefs | 获取对象的 Typedef 元素的集合。 | |
Unions | 获取对象的 Union 元素的集合。 | |
UsingAliases | 获取对象的 alias 元素的集合。 | |
Usings | 获取对象的 #using 元素的集合。 | |
Variables | 获取对象的变量集合。 |
页首
方法
名称 | 说明 | |
---|---|---|
AbortTransaction | 取消当前事务。 | |
AddAttribute | 创建新的特性代码构造,并将代码插入正确的位置。 | |
AddClass | 创建新的类代码构造,并将代码插入正确的位置。 | |
AddDelegate | 创建新的委托代码构造,并将代码插入正确的位置。 | |
AddEnum | 创建新的枚举代码构造,并将代码插入正确的位置。 | |
AddFunction | 创建新的函数代码构造,并将代码插入正确的位置。 | |
AddIDLImport | 将新的 import 语句添加到特定 .idl 文件。 | |
AddIDLLibrary | 将新的 library 语句添加到特定 .idl 文件。 | |
AddImport | 将一个 #import 元素添加到特定文件。 | |
AddInclude | 将一个 #include 元素添加到特定文件。 | |
AddInterface | 创建新的接口代码构造,并将代码插入正确的位置。 | |
AddMacro | 将一个 #define 元素添加到特定文件。 | |
AddMap | 将映射项添加到对象。 | |
AddNamespace | 创建新的命名空间代码构造,并将代码插入正确的位置。 | |
AddStruct | 创建新的结构代码构造,并将代码插入正确的位置。 | |
AddTypedef | 将一个 typedef 元素添加到特定文件。 | |
AddUnion | 将 union 元素添加到 VCCodeModel 对象中。 | |
AddUsing | 将一个 #using 元素添加到特定文件。 | |
AddUsingAlias | 使用别名,添加一个。 | |
AddVariable | 创建新的变量代码构造,并将代码插入正确的位置。 | |
CodeElementFromFullName | 获取对象的指定代码元素的集合。 | |
CodeElementFromFullName2 | 获取对象的指定代码元素的集合。它与 CodeElementFromFullName 相同,但它在查找时忽略命名空间。 | |
CodeTypeFromFullName | 基于完全限定名返回一个代码元素。 | |
CodeTypeFromFullName2 | 基于完全限定名返回一个代码元素。它与 CodeTypeFromFullName 相同,但它将尝试 typedef 解析。 | |
CommitTransaction | 提交对象的当前事务。 | |
CreateCodeTypeRef | 基于所传递的数据类型指示器的 CodeTypeRef 对象。 | |
DotNetNameFromLanguageSpecific | 将命名空间转换为 .NET 形式。 | |
ElementFromID | 未实现。 | |
GetClassesDerivedFrom | 返回从指定的选件类派生的选件类。 | |
IsValidID | 返回某指定名称是否为当前语言的有效编程标识符。 | |
LanguageSpecificNameFromDotNet | 从完全限定的名称转换为非托管命名空间形式。 | |
Remove | 从解决方案中移除指定的项目。 | |
RemoveEx | 从解决方案中移除指定的项目。 | |
StartTransaction | 开始事务。 | |
Synchronize | 将解决方案中的所有代码模型对象与源文件的编辑结果进行同步。 | |
SynchronizeCancellable | 显示具有进度栏的对话框。用户可取消等待并取消线程锁定。 | |
SynchronizeFiles | 确保项目文件上的 FileCodeModel 属性不为 null。 | |
ValidateMember | 验证所建议的名称是否是父对象上下文中给定类型的有效 C++ 名称。 | |
ValidateMemberName | 验证元素的名称。 |
页首
备注
VCCodeModel 对象提供代码模型的功能。Visual Studio 支持的各种语言 (包括 Visual C++) 在项目级别。
首先,此对象用于查看所有代码元素可访问在项目中 (给定的完全限定名)。 此外,对象指定项目编写的编程语言。
备注
Visual Studio CodeModel2 对象提供此对象的函数的一个主要部分。
在对托管项目中的一 VCCodeModel 对象,请包括 Microsoft.VisualStudio.VCCodeModel.dll 作为引用。 对托管项目的相关以下内容的详细信息添加的引用,请参见 如何:使用“添加引用”对话框添加或移除引用。
有关如何编译和运行此示例的信息,请参见如何:编译 Visual C++ 代码模型扩展性的示例代码。
示例
此函数返回表示解决方案 VCCodeModel 对象第一个项目。
Function GetVCCodeModel() As VCCodeModel
GetVCCodeModel = Nothing
Dim codeModel As CodeModel
Dim vcCodeModel As VCCodeModel
Dim solution As Solution
solution = DTE.Solution
If (solution Is Nothing) Then
MsgBox("A Solution is not open")
Exit Function
Else
If (DTE.Solution.Count <> 0) Then
codeModel = DTE.Solution.Item(1).CodeModel
vcCodeModel = CType(codeModel, VCCodeModel)
If (vcCodeModel Is Nothing) Then
MsgBox("The first project is not a VC++ project.")
Exit Function
Else
GetVCCodeModel = vcCodeModel
End If
End If
End If
End Function