Partager via


FileCodeModel2.AddInterface, méthode (String, Object, Object, vsCMAccess)

Crée une construction de code d'interface et insère le code à l'emplacement approprié.

Espace de noms :  EnvDTE80
Assembly :  EnvDTE80 (dans EnvDTE80.dll)

Syntaxe

'Déclaration
Function AddInterface ( _
    Name As String, _
    Position As Object, _
    Bases As Object, _
    Access As vsCMAccess _
) As CodeInterface
CodeInterface AddInterface(
    string Name,
    Object Position,
    Object Bases,
    vsCMAccess Access
)
CodeInterface^ AddInterface(
    String^ Name, 
    Object^ Position, 
    Object^ Bases, 
    vsCMAccess Access
)
abstract AddInterface : 
        Name:string * 
        Position:Object * 
        Bases:Object * 
        Access:vsCMAccess -> CodeInterface 
function AddInterface(
    Name : String, 
    Position : Object, 
    Bases : Object, 
    Access : vsCMAccess
) : CodeInterface

Paramètres

  • Name
    Type : System.String
    Obligatoire.Nom de la nouvelle interface.
  • Position
    Type : System.Object
    Facultatif.Valeur par défaut = 0.Élément de code après lequel le nouvel élément doit être ajouté.Si la valeur est CodeElement, le nouvel élément est ajouté directement après.
    Si la valeur est un type de données Long, AddInterface indique l'élément après lequel le nouvel élément doit être ajouté.
    Comme la comptabilisation des collections commence à 1, passer la valeur 0 indique que le nouvel élément doit être placé au début de la collection.La valeur -1 signifie que l'élément doit être placé à la fin.
  • Bases
    Type : System.Object
    Facultatif.La valeur par défaut est NothingVariant qui contient un SafeArray de noms de types qualifiés complets ou d'objets CodeInterface dont dérive la nouvelle interface.

Valeur de retour

Type : EnvDTE.CodeInterface
Objet CodeInterface.

Notes

Visual C++ nécessite le format séparé par deux-points (::) pour ses noms de types qualifiés complets.Tous les autres langages prennent en charge le format séparé par des points.

L'exactitude des arguments est déterminée par le langage, au-delà du modèle de code.

Exemples

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;
}

Sécurité .NET Framework

Voir aussi

Référence

FileCodeModel2 Interface

AddInterface, surcharge

EnvDTE80, espace de noms

Autres ressources

Comment : compiler et exécuter les exemples de code du modèle objet Automation