다음을 통해 공유


CodeClass2.AddImplementedInterface 메서드

상속된 개체의 목록에 인터페이스를 추가합니다.

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

구문

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

매개 변수

  • Base
    형식: Object

    필수입니다. 클래스가 구현할 인터페이스로, CodeInterface 개체 또는 정규화된 형식 이름입니다.

  • Position
    형식: Object

    선택 사항 기본값은 0입니다. 이 코드 요소 뒤에 새 인터페이스가 추가됩니다.

    값이 Long 데이터 형식이면 Position에서는 요소를 설정하여 이 요소 뒤에 새 요소를 추가합니다.

    컬렉션에서는 1부터 카운트를 시작하므로 0을 설정하면 새 요소가 컬렉션의 맨 처음에 놓이며, 값 -1을 설정하면 요소가 맨 끝에 놓입니다.

반환 값

형식: CodeInterface
CodeInterface 개체

설명

AddImplementedInterface는 CodeClass2 개체가 구현하는 인터페이스에 대한 참조를 추가합니다. AddImplementedInterface에서는 인터페이스 멤버에 대한 메서드 스텁을 삽입하지 않습니다.

네이티브 Visual C++에서는 정규화된 형식 이름에 콜론으로 구분된 형식(::)을 사용해야 합니다. 다른 모든 언어에서는 마침표로 구분된 형식을 지원합니다.

인수가 올바른지 여부는 코드 모델에 사용되는 언어에 의해 결정됩니다.

참고

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

예제

[Visual Basic]

Sub AddImplementedInterfaceExample(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

        ' Add a new implemented interface to the class.
        cls.AddImplementedInterface(ConvertFullName(cm, _
            "System.IDisposable"))
    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

[C#]

public void AddImplementedInterfaceExample(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;

        // Add a new implemented interface to the class.
        cls.AddImplementedInterface(ConvertFullName(cm, 
            "System.IDisposable"), -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 보안

참고 항목

참조

CodeClass2 인터페이스

EnvDTE80 네임스페이스

기타 리소스

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

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

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