CodeElement2 인터페이스
소스 파일에서 코드 요소 또는 구문을 나타냅니다.
네임스페이스: EnvDTE80
어셈블리: EnvDTE80(EnvDTE80.dll)
구문
‘선언
<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")> _
Public Interface CodeElement2 _
Inherits CodeElement
[GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface CodeElement2 : CodeElement
[GuidAttribute(L"F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")]
public interface class CodeElement2 : CodeElement
[<GuidAttribute("F03DCCE8-233B-43D7-A66B-A66EFC1F85C3")>]
type CodeElement2 =
interface
interface CodeElement
end
public interface CodeElement2 extends CodeElement
CodeElement2 형식에서는 다음과 같은 멤버를 노출합니다.
속성
이름 | 설명 | |
---|---|---|
Children | 이 CodeElement2에 포함된 개체의 컬렉션을 가져옵니다. | |
Collection | 이 속성을 지원하는 CodeElement2가 포함된 CodeElements 컬렉션을 가져옵니다. | |
DTE | 최상위 확장성 개체를 가져옵니다. | |
ElementID | 요소를 고유하게 식별하는 값을 가져옵니다.Visual C#에는 구현되어 있지 않습니다. | |
EndPoint | 코드 항목의 끝 위치가 되는 텍스트 지점을 가져옵니다. | |
Extender | 이 CodeElement2 개체에 사용 가능한 경우 요청한 Extender를 반환합니다.Visual C#에는 구현되어 있지 않습니다. | |
ExtenderCATID | CodeElement2 개체의 Extender CATID(범주 ID)를 가져옵니다.Visual C#에는 구현되어 있지 않습니다. | |
ExtenderNames | CodeElement2 개체에 대해 사용할 수 있는 Extender의 목록을 가져옵니다.Visual C#에는 구현되어 있지 않습니다. | |
FullName | CodeElement2 개체 파일의 전체 경로와 이름을 가져옵니다. | |
InfoLocation | 코드 모델 기능을 가져옵니다. | |
IsCodeType | CodeElement2 개체로부터 CodeType 개체를 얻을 수 있는지 여부를 가져옵니다. | |
Kind | 코드 요소의 형식을 정의하는 열거형을 가져옵니다. | |
Language | CodeElement2 를 작성하는 데 사용되는 프로그래밍 언어를 가져옵니다. | |
Name | CodeElement2 개체의 이름을 가져오거나 설정합니다. | |
ProjectItem | CodeElement 개체와 관련된 ProjectItem 개체를 가져옵니다. | |
StartPoint | CodeElement2 의 시작 부분을 정의하는 TextPoint 개체를 가져옵니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
GetEndPoint | 코드 요소 정의의 끝을 표시하는 TextPoint 개체를 가져옵니다. | |
GetStartPoint | 코드 요소 정의의 시작을 표시하는 TextPoint 개체를 가져옵니다. | |
RenameSymbol | 개체의 선언된 이름을 변경하고 현재 프로젝트의 범위 내에서 개체에 대한 모든 코드 참조를 업데이트합니다. |
위쪽
설명
코드의 모든 부분이 코드 요소가 될 수 있지만 일반적으로는 언어의 각 정의 또는 선언 구문에 대한 CodeElement2 개체가 있습니다. 즉, 파일에 있는 대부분의 최상위 정의나 선언 또는 클래스 정의에 있는 구문 양식 등에 대해 해당하는 CodeElement2 개체가 있습니다.
참고
클래스, 구조체, 함수, 특성, 대리자 등의 코드 모델 요소를 특정한 방식으로 편집한 후에는 요소의 값이 명확하지 않을 수 있습니다. 즉, 요소의 값이 항상 같다고 할 수 없습니다.자세한 내용은 코드 모델을 사용하여 코드 검색(Visual Basic)의 "코드 모델 요소 값이 변경될 수 있음" 단원을 참조하십시오.
예제
[Visual Basic]
Sub IsCodeTypeExample(ByVal dte As DTE2)
' NOTE: This example requires a reference to the System.Text
' namespace.
' Before running this example, open a code document from a project.
Dim item As ProjectItem = dte.ActiveDocument.ProjectItem
Dim sb As New StringBuilder
RecurseElements(item.FileCodeModel.CodeElements, 0, sb)
MsgBox(item.Name & " contains the following elements:" & vbCrLf & _
vbCrLf & sb.ToString())
End Sub
Sub RecurseElements(ByVal elems As CodeElements, _
ByVal level As Integer, ByVal sb As StringBuilder)
Dim elem As CodeElement
For Each elem In elems
' Add element to the list of names.
sb.Append(" "c, level * 8)
sb.Append(elem.Name & " [" & elem.Kind.ToString() & "]" & _
vbCrLf)
' Call this function recursively if element has children.
If elem.Kind = vsCMElement.vsCMElementNamespace Then
RecurseElements(CType(elem, CodeNamespace).Members, _
level + 1, sb)
ElseIf elem.IsCodeType Then
RecurseElements(CType(elem, CodeType).Members, _
level + 1, sb)
End If
Next
End Sub
[C#]
public void IsCodeTypeExample(DTE2 dte)
{
// NOTE: This example requires a reference to the System.Text
// namespace.
// Before running this example, open a code document from a
// project.
ProjectItem item = dte.ActiveDocument.ProjectItem;
StringBuilder sb = new StringBuilder();
RecurseElements(item.FileCodeModel.CodeElements, 0, sb);
MessageBox.Show(item.Name + " contains the following elements:" +
Environment.NewLine + Environment.NewLine + sb.ToString());
}
void RecurseElements(CodeElements elems, int level, StringBuilder sb)
{
foreach (CodeElement elem in elems)
{
// Add element to the list of names.
sb.Append(' ', level * 8);
sb.Append(elem.Name + " [" + elem.Kind.ToString() + "]" +
Environment.NewLine);
// Call this function recursively if element has children.
if (elem.Kind == vsCMElement.vsCMElementNamespace)
RecurseElements(((CodeNamespace)elem).Members,
level + 1, sb);
else if (elem.IsCodeType)
RecurseElements(((CodeType)elem).Members, level + 1, sb);
}
}