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