FileCodeModel.AddInterface(String, Object, Object, vsCMAccess) Methode

Definition

Erstellt ein neues Schnittstellen-Codekonstrukt und fügt den Code am korrekten Ort ein.

EnvDTE::CodeInterface AddInterface(std::wstring const & Name, winrt::Windows::Foundation::IInspectable const & Position, winrt::Windows::Foundation::IInspectable const & Bases, EnvDTE::vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[System.Runtime.InteropServices.DispId(9)]
public EnvDTE.CodeInterface AddInterface (string Name, object Position, object Bases, EnvDTE.vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[<System.Runtime.InteropServices.DispId(9)>]
abstract member AddInterface : string * obj * obj * EnvDTE.vsCMAccess -> EnvDTE.CodeInterface
Public Function AddInterface (Name As String, Optional Position As Object, Optional Bases As Object, Optional Access As vsCMAccess = EnvDTE.vsCMAccess.vsCMAccessDefault) As CodeInterface

Parameter

Name
String

Erforderlich. Der Name der neuen Schnittstelle.

Position
Object

(Optional) Standardwert = 0. Das Codeelement, nach dem das neue Element eingefügt werden soll. Wenn der Wert ein CodeElement ist, wird das neue Element direkt im Anschluss eingefügt.

Wenn der Wert ein Long-Datentyp ist, dann gibt AddInterface(String, Object, Object, vsCMAccess) das Element an, nach dem das neue Element eingefügt werden soll.

Da Auflistungen mit dem Index 1 beginnen, gibt ein Übergabewert von 0 an, dass das neue Element zu Anfang der Auflistung eingefügt werden soll. Der Wert -1 bedeutet, dass das Element am Ende eingefügt werden soll.

Bases
Object

(Optional) Der Standardwert ist Nothing. Diese Variante enthält ein SafeArray mit vollqualifizierten Typnamen oder CodeInterface-Objekten, von denen die neue Schnittstelle ableitet.

Access
vsCMAccess

(Optional) Eine vsCMAccess-Konstante.

Gibt zurück

CodeInterface

Ein CodeInterface-Objekt.

Attribute

Beispiele

Sub AddInterfaceExample2(ByVal dte As DTE2)  

    ' Before running this example, open a code document from a project.  
    Try  
        Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem  
        Dim cm As CodeModel = projItem.ContainingProject.CodeModel  

        ' Initialize the base interfaces array.  
        Dim bases() As Object = { _  
            ConvertFullName(cm, "System.IDisposable"), _  
            ConvertFullName(cm, "System.IComparable") _  
       }  

        ' Create a new class.  
        projItem.FileCodeModel.AddInterface("TestInterface", , bases)  
    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 AddInterfaceExample2(DTE2 dte)  
{  
    // Before running this example, open a code document from   
    // a project.  
    try  
    {  
        ProjectItem projItem = dte.ActiveDocument.ProjectItem;  
        CodeModel cm = projItem.ContainingProject.CodeModel;  

        // Initialize the base interfaces array.  
        object[] bases = {  
        ConvertFullName(cm, "System.IDisposable"),   
        ConvertFullName(cm, "System.IComparable")  
        };  

        // Create a new class.  
        projItem.FileCodeModel.AddInterface("TestInterface", -1, bases,   
            vsCMAccess.vsCMAccessPublic);  
    }  
    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;  
}  

Hinweise

Visual C++ verlangt ein Format mit Trennung durch Doppelpunkte (::) oder die vollqualifizierten Typnamen. Alle anderen Sprachen unterstützen das Format mit Trennung durch Punkte.

Die Richtigkeit der Argumente hängt von der Sprache hinter dem Code Modell ab.

Gilt für