다음을 통해 공유


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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 Children (CodeElement에서 상속됨)
Public 속성 Children 이 CodeElement2에 포함된 개체의 컬렉션을 가져옵니다.
Public 속성 Collection (CodeElement에서 상속됨)
Public 속성 Collection 이 속성을 지원하는 CodeElement2가 포함된 CodeElements 컬렉션을 가져옵니다.
Public 속성 DTE (CodeElement에서 상속됨)
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 ElementID 요소를 고유하게 식별하는 값을 가져옵니다.Visual C#에는 구현되어 있지 않습니다.
Public 속성 EndPoint (CodeElement에서 상속됨)
Public 속성 EndPoint 코드 항목의 끝 위치가 되는 텍스트 지점을 가져옵니다.
Public 속성 Extender[String] (CodeElement에서 상속됨)
Public 속성 Extender[String] 이 CodeElement2 개체에 사용 가능한 경우 요청한 Extender를 반환합니다.Visual C#에는 구현되어 있지 않습니다.
Public 속성 ExtenderCATID (CodeElement에서 상속됨)
Public 속성 ExtenderCATID CodeElement2 개체의 Extender CATID(범주 ID)를 가져옵니다.Visual C#에는 구현되어 있지 않습니다.
Public 속성 ExtenderNames (CodeElement에서 상속됨)
Public 속성 ExtenderNames CodeElement2 개체에 대해 사용할 수 있는 Extender의 목록을 가져옵니다.Visual C#에는 구현되어 있지 않습니다.
Public 속성 FullName (CodeElement에서 상속됨)
Public 속성 FullName CodeElement2 개체 파일의 전체 경로와 이름을 가져옵니다.
Public 속성 InfoLocation (CodeElement에서 상속됨)
Public 속성 InfoLocation 코드 모델 기능을 가져옵니다.
Public 속성 IsCodeType (CodeElement에서 상속됨)
Public 속성 IsCodeType CodeElement2 개체로부터 CodeType 개체를 얻을 수 있는지 여부를 가져옵니다.
Public 속성 Kind (CodeElement에서 상속됨)
Public 속성 Kind 코드 요소의 형식을 정의하는 열거형을 가져옵니다.
Public 속성 Language (CodeElement에서 상속됨)
Public 속성 Language CodeElement2 를 작성하는 데 사용되는 프로그래밍 언어를 가져옵니다.
Public 속성 Name (CodeElement에서 상속됨)
Public 속성 Name CodeElement2 개체의 이름을 가져오거나 설정합니다.
Public 속성 ProjectItem (CodeElement에서 상속됨)
Public 속성 ProjectItem CodeElement 개체와 연결된 ProjectItem 개체를 가져옵니다.
Public 속성 StartPoint (CodeElement에서 상속됨)
Public 속성 StartPoint CodeElement2 의 시작 부분을 정의하는 TextPoint 개체를 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 GetEndPoint(vsCMPart) (CodeElement에서 상속됨)
Public 메서드 GetEndPoint(vsCMPart) 코드 요소 정의의 끝을 표시하는 TextPoint 개체를 가져옵니다.
Public 메서드 GetStartPoint(vsCMPart) (CodeElement에서 상속됨)
Public 메서드 GetStartPoint(vsCMPart) 코드 요소 정의의 시작을 표시하는 TextPoint 개체를 가져옵니다.
Public 메서드 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);
    }
}

참고 항목

참조

EnvDTE80 네임스페이스

기타 리소스

방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행

코드 모델을 사용하여 코드 검색(Visual Basic)

코드 모델을 사용하여 코드 검색(Visual C#)