다음을 통해 공유


CodeClass.AddBase 메서드

상속된 개체의 목록에 항목을 추가합니다.

네임스페이스:  EnvDTE
어셈블리:  EnvDTE(EnvDTE.dll)

구문

‘선언
Function AddBase ( _
    Base As Object, _
    Position As Object _
) As CodeElement
CodeElement AddBase(
    Object Base,
    Object Position
)
CodeElement^ AddBase(
    Object^ Base, 
    Object^ Position
)
abstract AddBase : 
        Base:Object * 
        Position:Object -> CodeElement 
function AddBase(
    Base : Object, 
    Position : Object
) : CodeElement

매개 변수

  • Base
    형식: System.Object
    필수적 요소로서,구현을 파생할 클래스입니다.
    CodeClass 개체의 경우 이 값은 CodeClass 또는 정규화된 형식 이름입니다.Visual C++에서는 정규화된 형식 이름에 콜론으로 구분된(::) 형식을 사용해야 합니다.다른 모든 언어에서는 마침표로 구분된 형식을 지원합니다.
  • Position
    형식: System.Object
    선택적 요소로서,기본값은 0입니다.이 코드 요소 뒤에 새 요소가 추가됩니다.값이 CodeElement이면 바로 뒤에 새 요소가 추가됩니다.
    값이 Long 형식이면 AddBase에서는 요소를 설정하여 이 요소 뒤에 새 요소를 추가합니다.
    컬렉션에서는 1부터 카운트를 시작하므로 0을 설정하면 새 요소가 컬렉션의 맨 처음에 놓이며,값 -1을 설정하면 요소가 맨 끝에 놓입니다.

반환 값

형식: EnvDTE.CodeElement
CodeElement 개체입니다.

설명

AddBase는 Visual C++에 적합하도록 CodeType 개체가 아니라 CodeElement 개체를 반환하며 반환된 개체의 Kind는 Visual C++ 구현을 위한 vsCMElementVCBase입니다.

참고

클래스, 구조체, 함수, 특성, 대리자 등의 코드 모델 요소를 특정한 방식으로 편집한 후에는 요소의 값이 명확하지 않을 수 있습니다. 즉, 요소의 값이 항상 같다고 할 수 없습니다. 자세한 내용은 코드 모델을 사용하여 코드 검색(Visual Basic)의 "코드 모델 요소 값이 변경될 수 있음" 단원을 참조하십시오.

예제

Sub AddBaseExample(ByVal dte As DTE2)

    ' Before running this example, open a code document from a project
    ' and place the insertion point inside a class definition.
    Try
        ' Retrieve the CodeClass at the insertion point.
        Dim sel As TextSelection = _
            CType(dte.ActiveDocument.Selection, TextSelection)
        Dim cls As CodeClass = _
            CType(sel.ActivePoint.CodeElement( _
            vsCMElement.vsCMElementClass), CodeClass)
        Dim cm As CodeModel = _
            cls.ProjectItem.ContainingProject.CodeModel

        ' Create a fully qualified base name.
        Dim baseName As String = ConvertFullName(cm, _
            "System.Collections.CollectionBase")

        ' Add a base to the class.
        cls.AddBase(baseName)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

Function ConvertFullName(ByVal cm As CodeModel, _
    ByVal fullName As String) As String

    ' Convert a .NET type name into a C++ type name.
    If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
        (cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
        Return fullName.Replace(".", "::")
    Else
        Return fullName
    End If

End Function
public void AddBaseExample(DTE2 dte)
{
    // Before running this example, open a code document from a project
    // and place the insertion point inside a class definition.
    try
    {
        // Retrieve the CodeClass at the insertion point.
        TextSelection sel = 
            (TextSelection)dte.ActiveDocument.Selection;
        CodeClass cls = 
            (CodeClass)sel.ActivePoint.get_CodeElement(
            vsCMElement.vsCMElementClass);
        CodeModel cm = cls.ProjectItem.ContainingProject.CodeModel;

        // Create a fully qualified base name.
        string baseName = ConvertFullName(cm, 
            "System.Collections.CollectionBase");

        // Add a base to the class.
        cls.AddBase(baseName, -1);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

string ConvertFullName(CodeModel cm, string fullName)
{
    // Convert a .NET type name into a C++ type name.
    if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) || 
        (cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
        return fullName.Replace(".", "::");
    else
        return fullName;
}

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

CodeClass 인터페이스

EnvDTE 네임스페이스

기타 리소스

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

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

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